数组指针与 数组名 a和&a

数组指针与 数组名 a和&a

p3指向数组a的整块地址,定义指针p4会给出警告,char *与char *[5] 的 间接级别不同,意思大体就是&a代表的是数组的首地址,类型为char *[5],而a是数组a首元素的地址,类型为char*,但是由于&a和a的值一样,变量作为右值时编译器只是取变量的值,所以在VS2010运行并没有什么问题,而在gcc中会报错。p3+1是在p3的基础上跳过一个p3的地址大小(即5*sizeof(char)),p4也是一样。


数组指针与 数组名 a和&a

这里不同的是p3指向的是以数组a的首地址开始的大小为3个字节的空间,p3+1是在p3的基础上跳过一个p3的地址大小(即3*sizeof(char))


数组指针与 数组名 a和&a

p3指向的是以数组a的首地址开始的大小为10个字节的空间,p3+1是在p3的基础上跳过一个p3的地址大小(即10*sizeof(char))