2024-04-28 02:48:42
他们的区别是:
那么该指针变量存储的地址就必须是数组的首地址得是个指向行的地址,比如a[3][4]数组中的 a,a+2 等,不能是具体的指向列的地址,如 &a{2][1], &a[2][1] 这类地址。
指针数组:
指针数组可以说成指针的数组,这个变量是一个数组。其次指针修饰这个数组,意思是说这个数组的所有元素都是指针类型,在 32 位系统中指针占四个字节。
数组指针:
数组指针可以说成是数组的指针.这个变量是一个指针。其次数组修饰这个指针,意思是说这个指针存放着一个数组的首地址,或者说这个指针指向一个数组的首地址。
根据上面的解释可以了解到指针数组和数组指针的区别,因为二者根本就是种类型的变量。
2024-04-28 02:47:44
指针数组:表示的是一个数组,数组中每一个变量都是指针型变量。数组指针:表示的是一个指针类型的变量,这个指针变量指向的是一个数组。
数组指针的本质就是一个指向数组地址的指针。所占内存空间大小为4char(*p),这里的p指向一个含有4个char类型的数组。
假设char a[4]={'a','b','c','d'},数组的地址和数组中首元素的地址相同,a+1是在数组移动一个元素的长度,移动距离为1,而p+1是是移动一个数组的长度,移动距离为4。
关于二维数组和指针的关系,二维数组的本质是一个二维指针,例如 char a[2][3] ,char **p=a,*p(i)+j 是指向元素p[i][j]的地址,等同于a[i]+j,*(*p(i)+j)表示a[i][j]元素,等同于*p[i][j],*p(i)是指向数组第i行的地址,*p是表示二维数组的地址。
2024-04-28 03:59:35
2024-04-28 04:12:21
2024-04-28 02:41:15