初学C语言,这是我写的一个程序:
#include <stdio.h>
#include <string.h>
int main(void)
{
char fname[20],lname[20];
int n,m;
printf("Please enter your first name:\n");
scanf("%s",&fname);
printf("Please enter your last name:\n");
scanf("%s",&lname);
n = strlen(fname);
m = strlen(lname);
printf("%s %s\n",fname,lname);
printf("%*d %*d\n",n,n,m,m);
printf("%s %s\n",fname,lname);
printf("%-*d %-*d",n,n,m,m);
getch();
return 0;
}
当我把int n,m;放在scanf()后一句,程序就要报错,而把int n,m;放在开头就没有错。这是什么原因?不是说只要在首次使用变量前声明变量就可以了吗?