作业帮 > 数学 > 作业

若有定义int(*p)[3]; 则定义了一个名为p的指针变量 它可以指向每行有三个整数元素的二维数组

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:数学作业 时间:2024/05/10 17:27:32
若有定义int(*p)[3]; 则定义了一个名为p的指针变量 它可以指向每行有三个整数元素的二维数组
请问如何理解这句话和此定义 为什么是二维数组?
若有定义int(*p)[3]; 则定义了一个名为p的指针变量 它可以指向每行有三个整数元素的二维数组
首先(*p)[3]是一个指针数组,意思就是p这个指针是指向一个含有3个元素的数组的,那么p指针每一次加1就相当于把p中存的地址加6(前提是int类型占2个字节,在VC中是占4个字节).
举个例子:
int a[3][3];
int(*p)[3];
p=a; //也就是把数组a的首地址存放到p中
那么p[1]就是a[1][0]的地址,p[1][0]就等于a[1][0],而p[1][2]就等于a[1][2];
这就说明了为什么是二维数组了