这是一个关于C语言输入输出函数的问题

int a;
scanf("%d",&a);
printf("%d",a);

这是我写的一段代码,我有个疑问,输人输出语句,逗号前面的参数相同,逗号后面的参数
为什么一个有取地址符号,一个没有取地址符号呢。

建议阅读Linux中这个两个函数的原码,其中有详细的解释

scanf是问你写到哪,这个"哪"不就要是个地址.... printf是问你输出谁,这个"谁"不就是指变量本身.

这个是scanf、和printf函数写好就确定是这样用的的,你如果想更深入的了解,可以看下它们源码的实现

scanf里的&a就是表示a的地址,只有知道a的地址,才可以存放值进去。
printf是直接打印值,不需要存储值。