有以下程序 #include <stdio.h> #include <string.h> main( ) { char name[9] = "c##line"; char* str = name; printf("%d

admin2020-11-27  12

问题 有以下程序
#include   <stdio.h>
#include   <string.h>
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##line"只有7个字符,strlen()函数返回的是该字符串的长度,不包含结束符,str是一个指针变量,占用4个字节长度,但是由于name首地址赋给了str指针变量,在调用strlen()函数时,返回的是指针对应地址单元的字符串的长度7,因此答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/PZ3p777K
0

随机试题
最新回复(0)