高山流水i 发表于 2017-11-19 18:35:45

关于scanf函数的一些小疑惑

问题1:为什么有些scanf 后面要加&,有些则不用?

问题2:printf("%d")printf("%2d")   printf("%.2f")printf("%-2d")百分号后面接的这些都代表什么,可以帮我补全一下吗?

ba21 发表于 2017-11-19 19:13:11

问题1:&意指把输入的值存入某个变量
问题2:参考https://www.cnblogs.com/arxive/p/5160007.html

高山流水i 发表于 2017-11-19 19:32:00

ba21 发表于 2017-11-19 19:13
问题1:&意指把输入的值存入某个变量
问题2:参考https://www.cnblogs.com/arxive/p/5160007.html

如果没有&呢

ba21 发表于 2017-11-19 19:58:03

高山流水i 发表于 2017-11-19 19:32
如果没有&呢

没&就语法错误咯{:10_262:}

BngThea 发表于 2017-11-19 21:15:36

问题1:为什么有些scanf 后面要加&,有些则不用?
scanf函数的第二个参数要求传入一个指针,或者说一个地址
对于一般的变量,需要用取址运算符 &才能拿到它的地址
而对于指针,或者数组,只需要直接传递其变量名即可
比如
int a;
int b={};
int *p = &b;
scanf("%d%d%d", &a, b, p);

问题2:printf("%d")printf("%2d")   printf("%.2f")printf("%-2d")百分号后面接的这些都代表什么,可以帮我补全一下吗?
格式化输入输出控制,你可以参考小甲鱼的详细解读:
http://bbs.fishc.com/thread-66471-1-1.html

丶忘却的年少o 发表于 2017-11-20 09:44:47

指针可以不用加&,因为本身就是一个地址,加了&的意思就是说取这个变量的地址,然后把值填入进入
页: [1]
查看完整版本: 关于scanf函数的一些小疑惑