printf(“%d,%d”,srelen(str),sizeof(str));

2025-02-27 05:56:01
推荐回答(2个)
回答1:

srelen(str),-- strlen(str) 得 7
\t -- tab 键值 1byte
\x42 -- 16进制 数 1byte
\\ -- \ 键值 1byte
bcd -- 3 个字符,3 bytes
\n -- 新行 键值 1byte
共 7 bytes, 所以 strlen(str) 得 7
sizeof(str) -- str 数组大小,字符串结束符 '\0' 也要占1字节,7+1 为8

回答2:

/************************************************************************/
/* 21chenxb' work
2010-6-26
VC++6.0
C加加爱好者团
/************************************************************************/

经过一番修改,输出7,8
#include
#include
void main()
{ char str[]="\t\x42\\bcd\n";
printf("%d,%d",strlen(str),sizeof(str));
}

解释:关于转义字符不再多说,书上有详细介绍。
主要看输出的两个数字,分别代表strlen(str) str的长度(没有包括最后的空字符) ,sizeof(str)(包括了最后的空字符,所以多一个)