标签:
关于数组名和指针的区别:
推荐看这两篇文章:http://blog.chinaunix.net/uid-27004869-id-3301282.html
http://blog.csdn.net/sryan/article/details/7457459
示例:
char a[3]={1,2,3};
(输出10进制地址)
输出: a 为 2686777
&a 为 2686777
a是数组名,编译器处理时相当于数组首元素的地址
&a是一个指向数组的指针,值为数组的地址,等于数组首元素的地址
输出: *a 为 1
*(*&a) 为 1
*(&a) 为 2686777
*a是对数组首元素取值
*(&a)是对数组取值,取得数组的值,数组的值即数组的地址,等于数组首元素的地址
输出: a+1 为 2686778
&a+1 为 2686780
a+1是一个元素的内存大小,
&a+1增加的是整个数组的内存大小
标签:
原文地址:http://www.cnblogs.com/leod/p/4461006.html