C++ 数组指针问题
天蓬老师
天蓬老师 2017-04-17 12:06:07
[C++讨论组]
#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是指向一个有三个元素的数组吗?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(5)
黄舟

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

黄舟

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

伊谢尔伦

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

ringa_lee

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

PHPz

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

void main()

只有

int main()

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号