C++二维数组a[m][n]为何可以int (*p)[n]=\u0026a[i],而不能p=a[i]赋值(0\u003c=i\u003cm)?( 二 )
p=\u0026amp;a表示的是什么?a本来就是一个地址,你还要再对a取地址,应该还是它本身,但是含义不同。非形参数组名都是指针常量,对指针常量取地址还是它本身(或者压根取不了地址,因为常量可能没地址)。你也可以在编译器里面打一下看看会不会报错。
■网友
这个问题真特么的乱,涉及数组指针和指针数组,指针-数组的一致性,*和值和\u0026amp;的关系,还有在特定的重载类型下的指针和值的隐式类型转换。如果过几天没大牛,我就回来答这个问题。
■网友
int a;int (*p);a,a,a,a是啥?它们每一个都是(int )的结构(5个连续int的结构);p 是啥?它的类型是(int (*) ),也就是说,它是一个指向(int )结构的指针;所以,p要指向某个(int ),当然要对(int )结构取地址,也就是对a取地址,即\u0026amp;a。
■网友
允许这么做的话,那么 p 到底是什么?是 a 还是 a?你想让编译器怎么解释给你看。
推荐阅读
- 非计算机专业想要利用课余时间深入自学C++,想要找到比较体面的工作大概需要啥水平
- C语言 指针引用数组的地址问题
- Java工程师和C++工程师在工作上有啥区别哪个更适合自身发展
- 手绘二维码可以被扫描出来吗
- C、C++、java等编程语言都有哪些坑
- c++写http服务器不用cgi和apache该用啥
- 看完c++ primer plus 还有必要再买本c++ primer看吗?
- 咋拒绝在地铁上以创业为由让扫二维码的人
- 有人可以把C,C++,Python等编程语言开发出来,而我们却难以精通,这说明了啥问题
- C语言多维数组声明调用和c为啥差别这么大
