C语言中scanf后面,符号&的使用问题

一直以来编程从来都不加地址符号与&的 今天偶然看到教材上说这是错误的 麻烦大家帮我分析下 既然不加也能正常用 为何说是错误的呢?

scanf需要指针做参数,printf需要数值做参数。你代码中是printf,当然没问题。

scanf需要指针做参数,如果是非指针变量,那么需要使用地址符,转换为指针类型接收,如果是指针变量(包括字符串数组),那么直接用指针变量接收,不需要地址符。

int a;
char b[10];
double *c = new double;
scanf("%d",&a);
scanf("%s",b);
scanf("%f",c);

温馨提示:答案为网友推荐,仅供参考
相似回答