C++ 数组指针问题

浏览:29日期:2023-06-05

问题描述

#include<iostream.h>void main(){int n[][3]={10,20,30,40,50,60};int (*p)[3];p=n;cout<<p[0][0]<<','<<*(p[0]+1)<<','<<(*p)[2]<<endl;}

跪求解答,这么声明的话p是指向一个有三个元素的数组吗?

问题解答

回答1:

哥们你这是怎么了 哈哈太久没碰这么基础的玩意了 推荐你一本书 你必须知道的495个C语言问题再说你的问题int(*p)[3] 中的p是一个指向数组的指针,此数组有3个int类型的元素所以p和n可以等

回答2:

p的类型应该是int[3]~

回答3:

int(*p)[3] 中的p是一个指向数组的指针,此数组一维空间不确定,二维空间是三个元素,所有元素都是int型的,所以用n来赋值给p的。在c语言中*p相当于是一个长度不确定的数组。所以int(*p )[3]相当于int p[][3]

回答4:

p貌似是个长度不限的 int型数组的首地址,然后前6个就是10到60,而后面的则是随机乱码。

回答5:

噗,难道你学的是谭X强?C++主函数的声明从来都没有过这种写法:

void main()

只有

int main()

int main(int argc, char *argv[])

然后,关于变量声明的读法,从变量名开始,由(括号)内到外,从右到左:int (*p)[3]p is apointer toarray of 3 elements ofint

相关文章: