2024-05-04 11:21:53
指针数组,指数组元素就是指针
数组指针,对于一维数组来说就是数组名
故对于一维数组来说,数组名是第一个元素的指针,而元素本身也是指针,故数组名是指向指针的指针。
例如: int * p = &a; int ** q = &p;
则p中储存的是整形变量a的地址,而指针p自身也是变量(指针变量通常占4个字节),故q中储存的就是变量p的地址。q就成了指向指针的指针。
2024-05-04 06:02:10
1、指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针;数组指针:a pointer to an array,即指向数组的指针。
int* a[4] 指针数组
表示:数组a中的元素都为int型指针
元素表示:*a[i] *(a[i])是一样的,因为[]优先级高于*
int (*a)[4] 数组指针
表示:指向数组a的指针
元素表示:(*a)[i]
2、下面通过实例来说明数组指针与指针数组的区别:
#include <iostream>
using namespace std;
int main()
{
int c[4]={1,2,3,4};
int *a[4]; // 指针数组
int (*b)[4]; // 数组指针
b=&c;
// 将数组c中元素赋给数组a
for(int i=0;i<4;i++)
{
a[i]=&c[i];
}
// 输出看下结果
cout<<*a[1]<<endl; // 输出2
cout<<(*b)[2]<<endl; // 输出3
return 0;
}
2024-05-04 06:57:48