2015年软件水平考试程序员辅导笔记之C语言数组名a和&a小结
发布时间:2012/5/21 15:17:59 来源:城市网学院 编辑:ziteng
int a[5] = {1,2,3,4,5};
数组和指针是C说话的精髓也是它的可贵。出格是对于数组名a以及&a,良多同窗一向都搞不清嚣张。今天就说说我自己的理解,但愿能对巨匠有所辅佐。
a暗示的是a[0]的肇端地址,而&a暗示的整个数组的肇端地址。只是刚好他们暗示的地址相等,但并不能说他们两个就完全相等。就像浙江省的省政府在杭州,而杭州市的市政府也在杭州,但不能嗣魅浙江省政府就等于杭州市政府。
为了便利理解,我们来对数组进走运算。假设a的地址是0x00ffff00,那么a+1和&a+1分袂是若干好多。
因为a暗示的是a[0]的首地址,所以a+1加的就是一个a[0]元素的巨细,即一个int的巨细4,所以a+1为0x00ffff04
&a代表的是整个数组的首地址,所以&a+1加的就是整个数组的巨细,即4*5=20,所以&a+1为0x00ffff14
其实他们美全是两回事,只不外刚好数值上相等而已。