关于scanf()函数的一点小疑问
float a;
scanf("%f",&a);与下面的这个语句
char name1[11];
scanf("%5s ",name1);一个加了&符号,一个没有加&符号,有何区别啊?
[解决办法]
不要只看有无&,要看本质, scanf函数是需要取地址的, &a为去a的地址, 按%f格式读取
name1本身就是地址,所以不需再加&,本例中,name1 = &name1[0]
[解决办法]
严格上说是没区别的。scanf("", );的第二个参数是一个地址,就是输入的数据要放到内存中的某个地址里。
float a;
scanf("%f",&a);与下面的这个语句
char name1[11];
scanf("%5s ",name1);
第一个变量a是一个float类型的,输入的数据要放到a的内存地址里,所以需要加&,
第二个变量时字符数组,name1本身表示一串字符的首地址,所以就不用加&了。