Lov*_*ess 8 c++ arrays pointers
当我不小心将括号括在我的指针上并且我的程序输出发生了变化时,我用C++编写了一个代码.
由于我是编程新手,我想知道这些类型的指针之间的区别:
int* A[n];
int (*A)[n];
int *(A[n]);
Run Code Online (Sandbox Code Playgroud)
我在教科书中读过,数组也是一种指针.
小智 15
int* A[n];
Run Code Online (Sandbox Code Playgroud)
无论元素是什么类型,第一个也是最重要的是数组.在应用指针*之后,我们知道A是一个int指针数组.
int (*A)[n];
Run Code Online (Sandbox Code Playgroud)
通过应用括号,在这种情况下,指针*优先于array [].然后A首先是一个指针,无论它指向什么.在应用array []之后,我们知道A是一个指向int数组的指针.
int *(A[n]);
Run Code Online (Sandbox Code Playgroud)
括号不会更改任何会影响数组[]的优先顺序,因此删除括号int* A[n]与第一种情况相同.
Are array pointers?
Run Code Online (Sandbox Code Playgroud)
否.Array是一种数据结构,它分配内存池并按顺序存储数据,其中指针指向内存池中的特定索引,并引用存储在该内存位置的数据.