初学C语言,经常用到scanf函数,手动输入的值能赋给变量。如下:
int a=0;
scanf("%d", &a);
printf("a=%d", a)
可是为什么是scanf("%d", &a),而不能写成scanf("%d", a),我个人理解如下:
- 要通过scanf函数重新给已被定义的a(int a=0中的a)赋值,必须使 “int a=0中的a” 和“scanf("%d", &a)中的a” 关联起来。
- 那么,只能通过@地址传参的方式才能实现。
这里所说的原因其实就是——函数的传值调用和传址调用的区别。