c语言scanf 地址问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 12:43:31
有定义语句 int b,charc[10];则正确的输入语句是
scanf("%d,%s",&b,c);
为什么c前面不加地址符号&啊 是不是c的地址已经确定了,怎么确定的
&的具体作用是什么啊 我什么都不懂啊

&是取地址符
scanf传入的必须为地址,
所以写为&b,
但是对于char c[10]来说,c已经是数组的首地址了,所以就不用加&了

&的作用就是取地址,&b就是变量b的地址,因为b代表一个整形数而不是一个地址值,要将键盘输入的值存入该地址中,就必须找出地址,而c本身就是一个地址变量,即字符型数组的首地址,%s是从键盘获取一个字符串,将其存入数组c中,即要有c的首地址

&符号是取地址符
c是字符数组