二级指针和指针数组的表现方式

来源:百度知道 编辑:UC知道 时间:2024/05/21 23:58:51
char *a[3]={"ert","tre","ret"};
char **p;
p=a;
都是地址对地址;
那么**p中*p要和*a[3]联系,那p=a;那*p该怎么表示

char *a[3]={"ert","tre","ret"};表示一个指针数组,定义的是一个数组,数组里面存的是指针,也就是:&"ert",&"tre",&"ret";char **p;定义一个指向指针的指针,p=a,也就是把数组a的首元素的地址赋值给a,也就是p=&(&"ert");那么*p=&"ert",**p="ert";

cout<<**p<<endl;//输出e,第一个元素的首字母
cout<<**(p+1)<<endl;//输出t,第二个元素的首字母
cout<<*(*(p+1)+1)<<endl;//输出r,第三个元素的首字母