有如下程序 #include #include main() { char a[] = "THIS", *b = "OK"; printf("%d,%d,%d,%d\n", strlen(a), sizeof(a), strlen(b), sizeo

admin2015-07-28  28

问题 有如下程序
#include
#include
main()
{
char a[] = "THIS", *b = "OK";
printf("%d,%d,%d,%d\n", strlen(a), sizeof(a), strlen(b), sizeof(b));
}
程序运行后的输出结果是( )。

选项 A、4,5,2,4
B、4,4,2,1
C、5,5,3,3
D、4,5,2,3

答案A

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

最新回复(0)