以下程序段的输出结果为(C)
char c[] = “\t\v\0will\n”;
printf(“%d”, strlen(c));
A 14
B 3
C 9
D 编译错误
char c[] = "\t\v\\0will\n"; //数组的长度是10,表示10个字符元素: '\t' '\v' '\\' '0' 'w' 'i' 'l' 'l' '\n' '\0'
printf("%d\n", strlen(c)); //输出是 9,单位是个,表示字符串含有9个字符(字符串的长度),不包括最后一个字符后面的'\0'
printf("%d\n", sizeof(c)); //输出是10,单位是字节,表示该数组占用字节数,包括最后一个'\0'
int array[] = {1,2,3,4,5,6,7,8,9,10};
//printf("%d\n", strlen(array)); // 编译无法通过,strlen()只能用来计算字符串的长度,该数组保存的不是字符元素
printf("%d\n", sizeof(array)); //输出是40,32位和64位机器中,int都是4字节,4 * 10 = 40