有以下程序: #include<stdio.h> #include<string.h> main( ) } char a[]=″1234″,*b=″ABC″; printf(″%d%d%d%d\n″,strlen(a),sizeof(a),strlen(b

admin2019-04-14  38

问题 有以下程序:
#include<stdio.h>
#include<string.h>
main( )
}
char a[]=″1234″,*b=″ABC″;
printf(″%d%d%d%d\n″,strlen(a),sizeof(a),strlen(b),sizeof(b));
}
程序运行后的输出结果是(    )。

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

答案A

解析 对于字符数组a,含有4个元素,所以strlen为4,而sizeof包括最后隐藏的\0,故sizeof有5个。对于字符串b,strlen为3,关键是sizeof,这里的sizeof不再是指数组的长度,因为b是一个地址值,整型数据,所以占用了4个字节。
转载请注明原文地址:https://jikaoti.com/ti/eqf0FFFM
0

最新回复(0)