课后作业29
#include <stdio.h>void func(int b[]);
void func(int b[])
{
printf("%d\n", b);
}
int main(void)
{
int a = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
func(a);
return 0;
}
为什这题打印的是9呢,不是11呀? a 是一个拥有 3 行 4 列的二维数组,被作为参数 b 传入 func() ,在 func() 中,b 被视为一个拥有多行 3 列的二维数组,那么,元素 b 如果换算为一维数组索引是 2 * 3 + 2 = 8,如果将 8 换算为 3 行 4 列的二维数组索引是 a = a 当然就是 9 了。 jackz007 发表于 2021-3-26 11:39
a 是一个拥有 3 行 4 列的二维数组,被作为参数 b 传入 func() ,在 func() 中,b 被视为一个拥有 ...
懂了,谢谢
页:
[1]