猛兽进村:char *s="\ta\0m\nb"; 指针变量s指向的字符串所占字节数是多少?
来源:百度文库 编辑:查人人中国名人网 时间:2024/05/06 00:22:06
\t是一个制表符,相当于一个大空格,算一个字符对吧?
在机器内显示应该是这样:
[TAB]a\0m<cR>
b
对吧?
[TAB]算一个字符,a算一个字符,\0算一个占空间的字符吧?
当然用strlen计算这个字符串长度的时候是2,但实际上这个S所指向的字符
串应该算占3个字符空间吧???就是这点我拿不准
在机器内显示应该是这样:
[TAB]a\0m<cR>
b
对吧?
[TAB]算一个字符,a算一个字符,\0算一个占空间的字符吧?
当然用strlen计算这个字符串长度的时候是2,但实际上这个S所指向的字符
串应该算占3个字符空间吧???就是这点我拿不准
呵呵strlen被你的\0给骗啦,因为strlen一看到\0就认为字符串结束了,所以前面的\t算一个,a算一个,就是长度为2.strlen返回的是一个字符串中字符的数目,实际上不应该把他看作字节数.只是刚好每个char占用一个字节.
实际上,这块内存一共占有6个字节.因为\t \0 \n都算一个字节的, "\"叫做转义符,他所造成的效果跟他实际占用的字节数没有任何关系.
char *s="\\\"Name\\Address\n";的字符串的长度
char *s="\ta\0m\nb"; 指针变量s指向的字符串所占字节数是多少?
那char *s="\ta\017bc"中s所指向的字符串是5个还是6个啊?
char a[10]="";是什么意思?
main() {char *s1 = "abcdeg"; char *s2="ab"; s1++; s2++; printf ("%d\n",strcmp(s1,s2));}
main() {char *s1 = "abcdeg"; char *s2="a"; s1++; s2++; printf ("%d\n",strcmp(s1,s2));}
若有说明static char c[10]={'E','a','s','t','\0'},则下述说法中正确的是-------?
请问一个问题:char *s="\ta\017bc"中的\017是看成一个转义字符还是看成\0和1,7啊?
char ch[]="abc",如何理解?
c++ 求助,char>="a"错误?