有如下程序 #include #include main() { char name[10] = "c-book"; char* str = name; printf("%d,%d,%d,%d\n", sizeof(name), strlen(nam

admin2015-07-28  31

问题 有如下程序
#include
#include
main()
{
char name[10] = "c-book";
char* str = name;
printf("%d,%d,%d,%d\n", sizeof(name), strlen(name), sizeof(str), strlen(str));
}
程序运行后的输出结果是( )。

选项 A、10,6,4,6
B、11,6,11,6
C、11,6,1,6
D、10,7,1,7

答案A

解析 strlen()计算的是字符串的实际长度(不包含结束标识符),所以strlen(name)和strlen(str)的结果为均为6。sizeof(name)求的是字符数组a占用内存,数组a在定义时标明了维数为10,所以计算的结果为10;sizeof(str)求的是指针str占用字节数,在32位的计算机上规定一个指针变量占用的内存为32位,即4个字节,所以计算的结果为4。答案选A。
转载请注明原文地址:https://kaotiyun.com/show/ezDp777K
0

最新回复(0)