【发布时间】:2016-06-03 14:36:23
【问题描述】:
我正在用 C++ 编写代码时,我不小心将括号放在指针上,而我的程序输出发生了变化。
由于我是编程新手,所以我想知道这些类型的指针之间的区别:
int* A[n];
int (*A)[n];
int *(A[n]);
我在教科书中读到数组也是一种指针。
【问题讨论】:
-
数组可以衰减为指向其第一个元素的指针,但它不是指针。例如,当您将数组传递给函数或使用指针算法时,就会发生这种衰减。
-
@JoachimPileborg 当您将数组传递给其参数是指针的函数时。它基本上是使用数组的名称来初始化或分配给执行它的指针,而不是传递给函数。
-
学习顺时针螺旋规则,您将永远不会再对复杂的声明感到困惑。 stackoverflow.com/a/31789222/3758484
-
感谢您的帮助 :)
-
@juanchopanza;衰减为指向其第一个元素的指针的不是名称而是数组本身。