目录
1,声明形式
typedef const char* p_a;//这里用typedef建立了一个和const char*一样的新类型叫做p_a
2,具体实现
p_a p = "hello";//这里等同于const char* p = "hello";
p_a arr[] = { "12","34","56" };//建立一个指针数组常量arr,数组内的每个元素为指针
printf("arr[0]=%s\n", arr[0]);//arr[0] = "12";指针内存放的是指向字符串的地址
printf("*arr[0]=%c\n", *arr[0]);//*arr[0] = '1';
printf("*++arr[0]=%c\n", *++arr[0]);//*++arr[0] = '2';
二、指针数组与数组指针的调用与区别
1,区别
指针数组终究是数组,且在声明定义时需要以const设置为常量;而数组指针是指针以数组形式进行迭代访问,实现+-操作时以数组总单位进行。
2,具体实现
typedef const char* p_a;//这里用typedef建立了一个和const char*一样的新类型叫做p_a
typedef int(*parr)[3];//这里建立了一个数组指针模型,此时parr+1的值不是int四个字节,而是整个数组的大小即3*4=12个字节
p_a arr[] = { "12","34","56" };//建立一个指针数组常量arr,数组内的每个元素为指针
printf("arr[0]=%s\n", arr[0]);//arr[0] = "12";指针内存放的是指向字符串的地址
printf("*arr[0]=%c\n", *arr[0]);//*arr[0] = '1';
printf("*++arr[0]=%c\n", *++arr[0]);//*++arr[0] = '2';
int brr[] = { 1, 2, 3 };
parr q = &brr;//将数组指针实例化
printf("*q[0]=%d\n", *q[0]);//*q[0] = brr[0] = 1;
运行结果如下:
(本文仅供学习时参考,如有错误,纯属作者技术不到位,不足之处请多指教,谢谢)