【发布时间】:2015-09-02 13:34:02
【问题描述】:
我有一个关于将数组传递给另一个函数的问题。
#include <stdio.h>
void print (int ar[]);
main () {
int array[2][2] = {1,2,3,4};
print(array);
}
void print (int ar[]) {
printf("%d\n", ar[0]);
printf("%d\n", *(ar+1));
}
假设我将数组传递给函数 print。我是在传递第一个一维数组(array[0])的地址,还是只是传递第一个变量的地址(array[0][0])。
至于打印功能,在这种情况下,我是否正确地说通过打印 ar[0],我正在打印 array[0][0]?
但是为什么在打印*(ar+1)的情况下,我实际上打印的是array[0][1]而不是array[1][0]?
提前谢谢大家!
【问题讨论】:
-
您是否尝试过编译,例如对于 gcc,
-Wall? -
这给出了一个警告。编译看看。
-
你有没有经过this question?你应该! :)
-
谢谢 NTN。这是帮助理解多维数组的一个非常好的页面!
标签: c arrays function multidimensional-array