📜  在scanf()中使用&,但在printf()中不使用&

📅  最后修改于: 2021-05-26 01:07:49             🧑  作者: Mango

为什么在有scanf函数的情况下需要使用’&’而在printf函数的情况下则不需要使用’&’。

例子:

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

由于上面的a和b是两个变量,并且每个变量都分配了自己的地址,但我们分别发送了a和b的地址,而不是a和b。原因是,scanf()需要修改a和b的值,但是它们对于scanf()是局部的。因此,为了反映主函数的变量a和b的变化,我们需要传递它们的地址。我们不能简单地按价值传递它们。
但是在使用printf函数的情况下,因为我们仅要在输出控制台中打印变量的值,所以变量a和b的值不会进行任何更改。因此,不需要发送其地址。

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。