在32位编译器上,设有定义 char *str1 = "Hello", str2[] = "Hello"; , 则以下语句 printf("%d %d", sizeof(str1), sizeof(str2)); 的输出结果是( )。

admin2015-07-28  20

问题 在32位编译器上,设有定义
char *str1 = "Hello", str2[] = "Hello"; ,
则以下语句
printf("%d %d", sizeof(str1), sizeof(str2));
的输出结果是( )。

选项 A、4 6
B、5 5
C、6 6
D、5 6

答案A

解析 sizeof(str1)求的是一个指针占用字节数,在32位的计算机上规定一个指针变量占用的内存为32位,即4个字节,所以第一个输出结果为4;sizeof(str2)求的是字符数组str2占用内存,包含字符串结束标识符?\0?,所以第二个输出结果为6。答案选A。
转载请注明原文地址:https://jikaoti.com/ti/sei0FFFM
0

最新回复(0)