int (*pt1)[5]; // 步长为 5 的数组指针,即 prt 指向的数组里有 5 个元素
pt1=&a;//给数组指针赋值:数组的地址
int **pt2;//定义一个指针的指针;
pt2 =(int **)&pt1;//pt2存储pt1这个变量的地址
int i =0;
for(; i < 5;i++){
printf("a[%d] = %d\n",(**pt2)[i]);
}
printf("a[%d] = %d\n"**,****pt2[i]); 这一行报错,缺了a[%d] 这个%d 的参数,pt2[i] 表达式也有误,修改如下:
#include <stdio.h>
int main()
{
int a[5] = { 1,2,3,4,5 }; //定义一个一维数组 a
int(*pt1)[5];// 步长为 5 的数组指针,即 prt 指向的数组里有 5 个元素
pt1 = &a;//给数组指针赋值:数组的地址
int** pt2;//定义一个指针的指针;
pt2 = (int**)&pt1;//pt2存储pt1这个变量的地址
int i = 0;
for (; i < 5; i++) {
printf("a[%d] = %d\n", i, **pt2 + i);//*(*pt2 + i));
//printf("a[%d] = %d\n",(**pt2)[i]);
}
return 0;
}
改为这样子试下:*(pt2+i)