求问大神数组指针
第二张图里的把int (*p) = array改成int (*p)= &array是什么意思呢?理解不了为什么又要加个取址符。。。然后就是*(*(p+i)+j))的前面又加了一个*解引用又是什么意思呢?求解答 本帖最后由 jhq999 于 2021-12-20 17:40 编辑
int (*p)= &array;//(*p)代表二维是3一维是4的三维数组指针,所以赋值给p二维数组array的指针的指针,让p=array;
*(*(p+i)+j))//差点被你的疏忽给骗了,是第一张图int (*p)= array;的解引用,你想说的是哪张图的解引用?
//第一张图p=array;所以p的解引用也就是数组array的解引用 jhq999 发表于 2021-12-20 17:32
*(*(p+i)+j))//差点被你的疏忽给骗了,是第一张图int (*p)= array;的解引用,你想说的是哪张图的 ...
*(*(*p+i)+j))是这里的解引用,最内层代表的是*p+i的指针吗?那另外两个*是怎么解释的呢? 本帖最后由 jhq999 于 2021-12-20 18:53 编辑
李现实 发表于 2021-12-20 18:28
*(*(*p+i)+j))是这里的解引用,最内层代表的是*p+i的指针吗?那另外两个*是怎么解释的呢?
*p=p=array
所以,相当于*(*(array+i)+j);array+i相当于&array,*(array+i)相当于array;array+j相当于&array;*&array=array jhq999 发表于 2021-12-20 18:47
这个点懂了,那int (*p) = array和int (*p)= &array这两行代码的区别是什么呢?求详解 李现实 发表于 2021-12-20 20:53
这个点懂了,那int (*p) = array和int (*p)= &array这两行代码的区别是什么呢?求详解
(*p) 是二维数组指针,(*p)是三维数组指针
int (*p) = array;//p=array
int (*p)= &array//*p或者p=array
页:
[1]