mig*_*WOZ 2 c arrays multidimensional-array
我是C的新手并且坚持"如何将多维数组传递给函数".我知道你必须传递列大小,这样如果你想要去它a[0][0],a[1][0]它可以计算一维数组的大小,并可以跳过它.
我写了一个小程序:
#include<stdio.h>
void foo(char[][2]);
int main()
{
char arr[2][2] = {'a','b','c','d'};
foo(arr);
return 0;
}
void foo(char temp[][2])
{
temp++;
printf("%c",*temp);
}
Run Code Online (Sandbox Code Playgroud)
我期望这段代码会打印这个字母c,因为temp最初指向'a'并且一旦我们递增它,它将跳过第一个1-d数组并转到第二个1-d数组的第一个元素'c'.但是我认为这种方式不起作用.
请解释编译器如何计算这些地址.