首页 > 试题广场 >

在64位机器上运行以下代码段会输出什么结果。 () char

[单选题]
在64位机器上运行以下代码段会输出什么结果 ()
    char a[2] = {1,2};
    char *b= &a[0];
    printf("%d,%d", sizeof(a), sizeof(b));

  • 2,2
  • 2,4
  • 2,8
  • 4,4
sizeof是求已分配的空间大小。a是字符数组,很明显分配了两个单位,所以占的空间为2。而b是指针,存储的是a[0]的地址,64位机器下地址占8个字节。顺便扩展一下strlen,是用来求字符串长度,遇到\0结束且不统计\0。而sizeof用来求字符串所占空间是会将\0计算入内。
编辑于 2022-01-19 15:07:00 回复(1)
指针就是一个地址,而在64位系统中,地址是8字节构成的
发表于 2022-03-04 12:40:19 回复(2)
a为字符数组,sizeof(a)为字符数组大小 :2
b为指针,指向存放数据元素a[0]的地址,题目说是64位机器,所以地址为64位,即8个字节。
发表于 2021-12-16 14:58:07 回复(0)
b的类型为指针,64位分配8个字节。
发表于 2023-06-29 18:38:47 回复(0)
指针在64位机上占8个字节
发表于 2022-10-14 21:11:16 回复(0)
b是个指针 在64wei上占8个字节
发表于 2022-08-07 22:06:59 回复(0)
32位系统,指针占4个字节。64位系统,指针占8个字节
发表于 2022-07-28 15:11:13 回复(0)
没看到是64位机器
发表于 2022-03-13 11:25:14 回复(0)