c++二维数组中指向指针的指针是什么意思

来源:百度知道 编辑:UC知道 时间:2024/06/28 04:08:09
比如int a【4】【5】
那么a是指向指针的指针 a【0】 a【1】等则是a指向的指针
那么这两者如何用语言具体描述清楚

对a[4][5]来说,a是一个指针,指向一个有4个元素的数组,其元素分别是a[0],a[1],a[2],a[3],而这四个元素又分别是一个指针,分别指向一个有5个元素的数组,在这个数组里面才是真正存放a[4][5]的元素的。因此,a是指向指针的指针,a[0],a[1]...等则是a指向的指针(他们是a指向的元素,其本身的类型是指针)。

你的理解就有错误。数组变量名a的值是只读的,它代表一个地址,就是数组的首地址。c++没有事实上的二维数组。

#include<stdio.h>
void main()
{
int i,j;
char sg[5][256];
void sub1(char (*p)[256]);
void sub2(char *p);
for (i=0;i<5;i++)
for (j=0;j<256;j++)
sg[i][j]=j;
sub1(sg);
sub2(*sg);
}

void sub1(char (*p)[256])
{
printf("%d\n",*(*p+1)); /*sg[0][1]的值*/
printf("%d\n",**(p+1)); /*sg[1][0]的值*/
printf("%d\n",*(*(p+1)+1));/*sg[1][1]的值*/
}

void sub2(char *p)
{
printf("%d\n",*(p+1)); /*sg[0][1]的值*/
}