int main(){
//指针数组
const char *arr[] = {"hello","world","you"};
cout << arr[0] << endl; //hello
cout << arr[1] << endl; //world
cout << arr[2] << endl; //you
char p[] = {'a','c','b'};
char *ptr[3] = {0};
ptr[0] = p; //p = &p[0],就是数组p首元素的地址
ptr[1] = &p[1];
ptr[2] = p+2;
cout << *ptr[0] << endl; //a,地址解引用
cout << *ptr[1] << endl; //c
cout << *ptr[2] << endl; //b
//数组指针
//赋值二维数组
char (*pa)[4] = NULL;
char a[2][4] = {'a','c','d','\0','g','k','l','\0'};
pa = a; //这里的a = &a[0],也就是第一个一维数组的地址
cout << *pa << endl; //acd
cout << *(pa+1) << endl; //gkl
//赋值一维数组
char (*pa1)[4] = NULL;
char b[4] = {'a','c','d','\0'};
pa1 = &b; //这里需要注意,不能pa1 = b;因为b也就是&b[0],是数组首元素的地址而不是数组的地址,b+1就是+1,而pa1+1是+4(加一个一维数组的长度),要对应上
cout << *pa1 << endl; //acd
//cout << *(pa1+1) << endl; //越界,b是一维数组
return 0;
}
指针数组与数组指针
最新推荐文章于 2023-09-10 21:59:10 发布