C++ scanf() 和 printf() 参数列表的区别

来源:互联网 发布:执业药师注册网络平台 编辑:程序博客网 时间:2024/05/29 10:49


相信很多初学C++的同学也会遇到这个问题, 看下面代码:

scanf("%d", age);
printf("%d", age);

结果当然就是程序报错了.


错就错在输入函数的参数上, scanf() 函数中的参数列表要求的是变量的地址, scanf() 函数要将输入变量的值写入变量所占用的内存区域, 所以必须要知道这块内存区域的地址.


就如, 你要修改你身份证的名字, 就必须得知道, 你户口所在地的户籍科的地址一样, 而只是想要知道你的名字的话, 只需要你即可.


所以, printf() 函数的参数, 只需要传入变量名即可.


正确的代码如下:

scanf("%d", &age);printf("%d", age);


有人会说了, 为什么下面的代码不需要呢?

scanf("%s", name);printf("%s", name);


那是因为 name 是 一个字符数组

char name[32];


而数组的名字代表了数组在内存中的首地址, 这里传入的 name 实际就是name[32] 在内存中的首地址.





原创粉丝点击