标签:错误 数组的指针 str 举例 数组元素 二维 bsp arc []
数组指针(也称为行指针)
定义:int (*p)[n];
注释:()优先级高,首先说明p是一个指针,指向一个整型的一维数组,一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨越n个整型数据长度。
举例说明:
int a[3][4];
int (*p)[4];
p=a;//将二维数组的首地址赋给p,也就是a[0]或&a[0][0]
p++;//该语句执行后,p=p+1;p跨过a[0][]指向a[1][]
因此,指向数组的指针也称指向一维数组的指针,亦称为行指针。
指针数组
定义:int *p[n];
注释:[]优先级高,先与p结合组成一个数组,再由int*说明这是一个指针数组,它是有n个指针类型的数组元素。这里执行p+1时,则p指向下一个数组元素,p=a的赋值是错误的,因为p是不可表示,只存在p[0],p[1],....,p[n],而它们分别是指针变量可用于存放变量的地址。但可这样表示*p=a,*p表示指针数组的第一个元素的值,a的首地址。
举例说明:
int *p[3];
int a[3][4];
for(int i=0;i<3;i++)
p[i]=a[i];//int *p[3]表示一个一维数组内存放三个指针变量,分别是p[0],p[1],p[2],所以要分别赋值。
数组指针和指针数组的区别
数组指针只是一个指针变量,类似于一个二维数组,它占有内存中一个指针的存储空间。
指针数组是一个数组,包含多个指针变量,以数组的形式存在内在中,占有多个指针存储空间。
http://www.cnblogs.com/hongcha717/archive/2010/10/24/1859780.html
标签:错误 数组的指针 str 举例 数组元素 二维 bsp arc []
原文地址:https://www.cnblogs.com/MonkeyTina/p/8990547.html