【发布时间】:2021-05-15 14:06:03
【问题描述】:
1 问题 - 指针在此代码中的作用 2 问题-当我们传递一个二维数组时,为什么函数的参数是一维数组
#define N 10
int tab[N][N]
void create(int (*tabes)[N]){
for (i=0; i<N; i++){
for (j=0; j<N; j++){
tabes[i][j] = 2;
}
}
}
int main(){
create(tab);
}
【问题讨论】:
-
请提供minimal, reproducible example。这个问题目前很模糊。
-
参数是一个指向大小为 N 的 int 数组的指针。
-
当前发布的代码中没有动态分配。
int tab[N][N]是传递给void create(int (*tabes)[N])函数的静态int数组(缺少;,因此无法编译...)。 -
当我们传递一个二维数组时,为什么函数的参数是一维数组?百万美元的问题,如果你问自己这个问题,你在正确的轨道上,请阅读 C-FAQ 上的数组和指针部分c-faq.com/aryptr/index.html
标签: c pointers multidimensional-array implicit-conversion function-parameter