问个VC++方面的问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 03:32:17
char s[]="ef\0\123\\\n89" ;
sizeof(s)的值是多少
还有一题
char s[]="Rep\0Ch";
int m=sizeof(s)
问M的值是多少
详细的说下,马上2级考试了,这题目屡做屡错
答案是9和7。。。就是不知道怎么做出来的。

char s[]="ef\0\123\\\n89" ;
sizeof(s)的值是 9.

char s[]="Rep\0Ch";
sizeof(s) 等于 7

因为 sizeof 返回的是字符串占用内存的大小。
第一个字符串 "ef\0\123\\\n89" 的大小等于8(e,f,\0,\123,\\,\n,8,9),再加上一个结束符,所有结果是 9。

第二个字符串大小等于 6(R,e,p,\0,C,h),再加上结束符,结果等于7.

反斜杠后面可以接的字符如下:
b
f
n
r
t
'
"
0
\
v
a
?
N(N为八进制常量,在 0 - 377 之间)
xN(N为十六进制常量,在x0 - xff 之间, x须小写)
其他的不做转义处理.

char s[]="ef\0\123\\\n89" ;
sizeof(s)的值是9
char s[]="Rep\0Ch";
int m=sizeof(s)
M的值是7