gpt4 book ai didi

C编程。指针数组和指向数组的指针

转载 作者:太空宇宙 更新时间:2023-11-04 06:20:59 25 4
gpt4 key购买 nike

为什么我在以下代码中遇到编译错误?和 int (*p)[4] 之间有什么区别? , int *p[4] , 和 int *(p)[4]

#include <stdio.h>
int main(){
int (*p)[4];// what is the difference between int (*p)[4],int *p[4], and int *(p)[4]
int x=0;
int y=1;
int z=2;
p[0]=&x;
p[1]=&y;
p[2]=&z;
for(int i=0;i<3;++i){
printf("%i\n",*p[i]);
}
return 0;
}

最佳答案

没有区别

int *p[4];

int *(p)[4];

两者都将 p 声明为一个包含 4 个指针的数组。

int x;
p[0] = &x;

对两者都有效。

int (*p)[4];

p 声明为指向 4 个 int 数组的指针。

您可以获得更多关于两者之间区别的详细信息

int *p[4];
int (*p)[4];

C pointer to array/array of pointers disambiguation .

关于C编程。指针数组和指向数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35090490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com