参数与指针课后题
#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?+
先讲讲我的思路。func(a)会实现func(int a[]),实现后是个3列的数组。所以应该是按照下列排序
123
456
789
10 11 12
最后要打印a,所以不应该是打印5吗?为什么是打印9?先谢谢你们的回答 在这段代码中,我们定义了一个二维数组a,它有3行4列。我们调用了函数func(a),将数组a作为参数传递给函数。函数func的参数是一个二维数组b,它有两个维度,第一个维度没有指定大小,第二个维度的大小为3。这意味着,我们可以传递一个有任意行数但列数为3的二维数组给函数func。在函数func中,我们打印了b的值,它是数组b的第三行第三列的元素。因为我们传递给函数的是数组a,所以b实际上是a,即数组a的第三行第三列的元素,也就是9。所以,最终打印的结果是9。 下标是从0开始啊 5应该是a才对
页:
[1]