为什么scanf的参数列表里是地址而printf里用变量

来源:百度知道 编辑:UC知道 时间:2024/06/18 17:37:37
比如这段程序
void main(){
int a,b,c;
printf("input a,b,c\n");
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d",a,b,c);
}
为何scanf要把数据放入a,b,c的地址里面,系统编译过程是怎样的?

你可以记住:系统就是这样规定的。

你可以分析:因为函数不能修改变量的值,scanf怎样保存结果呢?所以参数就把地址传给scanf,scanf也知道那是地址,地址修改不起用,要修改参数地址的内容。