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

admin2017-07-05  45

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

选项 A、9,7,4,7
B、8,6,9,6
C、8,6,3,6
D、10,8,5,8

答案A

解析 由于name是—个长度为9的一维数组,故在内存中占用9个字节长度,而其中字符串“c##1ine”只有7个字符,strlen()函数返回的是该字符串的长度,不包含结束符,str是一个指针变量,占用4个字节长度,但是由于name首地址赋给了str指针变量,在调用strlen()函数时,返回的是指针对应地址单元的字符串的长度7,因此答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/vpDp777K
0

最新回复(0)