C语言scanf()语句的一个问题

C语言scanf()什么时候用&,什么时候又不用?为什么要用&,这样用的好处是什么?

&的作用是取地址,对于简单变量,比如int float等就需要。字符数组、指针,本身就是指针了,就不需要。
不用取地址,函数内怎么把得到的结果再返回主程序呢?

&就是相当于地址的意思,你从键盘中输入数或赋值是要暂时存到一个地方栈,不加&,就相当于数没地存,好长时间没用过c了

从键盘输入值的时候会用到&(取地址符)去存储数据,输出就不需要。当然指针就不用了。