首页 > 试题广场 >

写出以下代码段的输出结果,并简述理由 void test(

[问答题]

写出以下代码段的输出结果,并简述理由

void test(int x[5]) {
    char
a[5][6];
    printf(“1.
%d”, sizeof(x));
    printf(“2.
%d”, sizeof(x[0]));
    printf(“3.
%d”, sizeof(a));
    printf(“4.
%d”, sizeof(a + 0));
    printf(“4.
%d”, sizeof(&a));
}

看了评论区的解答实在看不下去了,大家水平就这么点吗?好像没一个全对,下面的结果是在64位机器跑的结果,(为了方便看输出加了\n):
1.20
2.4
3.30
4.4
4.4


发表于 2019-05-03 10:57:02 回复(1)
x传入是作为数组之指针, 指针大小一直等于8
x[0] 是整数, 整数的大小为4
char数组为1*5*6 = 30 , 记得char的大小为1
a+0为当前指针
&a为当前指针
编辑于 2019-03-31 13:02:42 回复(0)
若是32位,则指针大小为4,那么答案为4,4,30,4,4
若是64位,则指针大小为8,答案为8,8,30,8,8
若有不对之处还望指出
发表于 2019-04-03 21:57:08 回复(0)
1.82.43.304.84.8
发表于 2019-08-23 13:13:32 回复(0)

32位:4 4 30 4 4;

64位:8 4 30 8 8。

发表于 2019-07-15 22:30:23 回复(0)
4 ,指针
4 ,int
30,
4,
1,
发表于 2019-04-05 11:02:37 回复(0)
1.20
2.4
3.30
4.8
4.8
发表于 2019-04-04 12:48:54 回复(0)