如题所述
是数组的地址和数组元素的首地址是一样的....这个很好理解,就想一条线段从头开始每隔一米涂上颜色.......第一次涂的颜色一定在线段的开头处.........
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2016-03-15
假设有一维数组a[10],指针变量p要指向这个数组的首地址,即a[0]的地址,那么p=a,似乎是固定的语法,这个数组的首地址就为数组名a,其实应该是a+0;因为零不算,就直接表示成a了。
那么a[0]到a[9]的每个元素的地址,都可以用a+i来表示,i为元素的个数,即a[1]的地址为a+1,以此类推。
故 数组名是没有地址的,只有数组中的每个元素有地址,而数组元素的地址,用“数组名+i”的形式来表示而已。
以上为C语言固定的语法。追问
那么a[0]到a[9]的每个元素的地址,都可以用a+i来表示,i为元素的个数,即a[1]的地址为a+1,以此类推。
故 数组名是没有地址的,只有数组中的每个元素有地址,而数组元素的地址,用“数组名+i”的形式来表示而已。
以上为C语言固定的语法。追问
那假如真的用(&数组名)这个指令的话,会怎样?
追答你可以试试printf输出看看(&数组名)得出的结果,与指针指向数组名的地址结果是否一样。
&加元素才能行成取址,例如&a[i],i为元数个数