数组的结尾是反斜杠0
答:输出为5,6。反斜杠在C语言中被用作转义字符,如果要输出反斜杠字符本身,则在程序中必须写成\\。在你上面的程序中,\n是一个字符,\\是一个字符,因而在取字符串长度时,就是5;因为s是一个字符数组,而用来对其进行初始化的字符串是以\0结尾(编译时会自动加上),所以sizeof(s)是6。
答:占五个字节\n 占一个字节123 占三个字节字符串结束符占一个字节 本回答被提问者采纳 ba5ham | 发布于2010-09-15 举报| 评论 2 8 这个字符串的长度是4,因为\n是一个字符在存储时需要占5个字符,因为字符串最后有结束标记'\0',也是一个。 mafangsan | 发布于2017-12-16 举报| 评论 0 0 5...
答:你这个不算标准的JSON格式数据,可以先将\"替换成"即可。再用json_decode()系统函数将其转为json对象,如需转为数组加上第二个参数为true即可。若仍输出为NULL,是由于存在BOM头信息,arr = json_decode(trim($json,chr(239).chr(187).chr(191)),true);转换即可。
答:字符1:a 字符2:b 字符3:'字符4:1 字符5:'字符6:\ ,因为\\相当于\ 字符7:S ,因为\123是八进制的ASCII,转成字符就是大写的S 字符8:4 字符9:8 字符10:'\0',因此数组占的长度为10。不明白再继续追问。
答:用反斜杠开始的字符叫 转意/转义 字符。\" 表示1个双引号字符。1 表示字符 1 \43 表示 是 8 进制数 043 对应 的 ASCII 字符 \n 是 新行符 (new-line 或 line-feed)\x11 表示 是 16 进制数 0x11 对应 的 ASCII 字符 \' 表示1个单引号字符 字符串结束符是 '\0'什么叫 ...
答:也就是说,不论是在字符串中还是字符串尾,只要遇到'\0',就认为字符串结束,不再继续统计字符串长度 2.\是转义字符,所以一些转义字符的意义需要注意 char s[]="\\141\141abc\t";进行strlen统计时,得到的结果为:9 共有如下字符:\:\\连用,标志一个反斜杠字符 1 4 1 \141:\ddd标志三...
答:除了第一行没加尖括号之外没什么错误啊。while((c=getchar())!='\n') :从键盘上取一个字符赋值给c,当c时回车是结束。那个反斜杠零不可以省,因为字符串应该以它为结束标志,这里不会自动赋,赋初值的时候才自动赋\0。个人观点,有疑问咱讨论讨论,我也是刚学过。呵呵 ...
答:之后\紧跟数组,允许至多三个合法八进制,八进制范围0-7,所以只能取\7,这是第3个字符;89是第4、5个字符;\x十六进制,至多2个合法十六进制,所以取\x12,这是第6个 3是第7个;再往后,不用细说了,第8个是\0。由于\0是字符串结束标志,所以字符串就此截止,后续内容不予考虑。你这道题目...
答:"\"是转义符。C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。拥有转义字符的原因基本上是两点:一、使用转义字符来表示字符集中定义的字符,比如ASCll里面的控制字符及回车换行等字符,这些字符都没...
答:a表示数组的首地址 p是一个指针变量,可以将数组的首地址赋值给p, 所以p=a;是正确的 但是a= "china"却不行,因为字符数组a是作为字符串常量存在的,只能在定义的时候赋值,不能像这样在后面对数组进行赋值操作
网友评论:
孙侦13417987952:
关于数组中的\0(反斜杠零)问题 -
33254尚路
: LS有误. 1.无论如何,初始化不是赋值. 2.字符型数组变量不会自动初始化.""之间的字符串(字符串字面量)这种表示方法末尾即隐含了一个字符串结束符'\0'. 对于数组而言,无论元素类型如何,如果显式初始化,而且初始化的元素个数小于定义的数组长度时,编译器自动把剩余空间初始化为零.因此int a[5]={0};这类写法相当于全部初始化为零. 对于全局或静态变量,如果不显式初始化,所有空间都会被隐式初始化为零. 除此之外的局部自动变量,如果不显式初始化,所占空间为随机值. ==== [原创回答团]
孙侦13417987952:
char a[]={'h','a','b','c','d'};这个字符数组的长度为啥是5 -
33254尚路
: 你要写成 char a[] = "habcd"; 才会有'\0'结尾."habcd" 表示字符串,需要 '\0'结尾,C语言编译器会自动添加'\0'到末尾,就变成6个字符.而{'h','a','b','c','d'}其实就是含有5个char值的数组.望采纳
孙侦13417987952:
C语言中s【i】与s【i】!的区别.另外s【i】!是什么 -
33254尚路
: !在C语言中是逻辑语“非”,s[i]指数组s的第i+1个变量(数组下标从零算起),s[i]!不存在这样表达方式我觉得!后面应该有其他的语句,加!后表其相反运算如!=就是不等于
孙侦13417987952:
c语言编程,为什么反斜杠零后面的东西都无法输出啊 -
33254尚路
: \0是一个转意字符,其意义是字符串的结尾,C程序执行到这时会默认字符串已结束,即后面的不输出了,字符串输出也不会带结束转意字符\0
孙侦13417987952:
C语言在数组后面添加结束符'\0'的小问题~ -
33254尚路
: 一个是整型数组,一个是字符数组,不一样的. 整型数据不是以\0结束的,而字符数组最后要存放一个\0的. 如int a[4],可以存放4个int型数据,如int a[4]={1,2,3,4} char a[4],也可存放4个字符,但最后一个字符得为\0,不然不能正常输入字符串. char a[4]={'a','b','c','\0'},当然'\0'也可以省略,char a[4]={'a','b','c'} 但不能是char a[4]={'a','b','c','d'},输出的时候会有乱码,因为没有结束标志.
孙侦13417987952:
字符串数组的长度 -
33254尚路
: 是14个,因为\n算一个换行字符,\t是一个退格字符,两个\\都是一个反斜杠字符,最后自动添加一个结束字符.你可以单步调试,跟踪一下s数组中的内容就知道了. 楼主问的是字符串数组的长度,自然就要有结束符'\0'了,要是说字符串的长度那是没有的.所以对于楼主的答案,应该是有'\0'的.
孙侦13417987952:
c语言反斜杠的问题 -
33254尚路
: 输出:5,6.原因:字符行符、三个数字、一个反斜杠,共是5个字符,长度为5. 有因为字符串最后有一个“\0”字符,所以大小为6.注意:“\n”和“\\”分别表示换行符与一个反斜杠.
孙侦13417987952:
关于字符数组中的结束标识符'\0',是怎么加啊的 -
33254尚路
: 1. 定义char a[30],如果没有初始化,从a[0]到a[29]都是'\0',也就是数值0(强制类型转换为int就等于0); 2. char a[30] = "hello",从a[5]到a[29]都是'\0',a[30]未知; 3. 另外你可能不明白:char a = '\0'; 表达式(int)a==0; 为true; 4. '\0'是字符串结束的标志,比如定义:char a[] = "hello"; 则a[5] = '\0', a[6]未知.
孙侦13417987952:
在C++中,为什么字符串数组都以"\0"结束?? -
33254尚路
: 不清楚倒可以原谅 楼上的这样来误导人可就不对了============================================================ 字符串以'\0'(注意:是单引号)结尾是C/C++标准规定的,不是由哪个编译器来规定的.空格的ASCII码是32,不是0,字符串中可以有空格的.这样当然有实际意义了 比如你定义 char ch1[80]="string1",*ch2="string2";无论ch1,还是ch2,都只代表字符串的首地址,因为字符串长度未知,所以必须要指明字符串以什么结束.
孙侦13417987952:
字符串数组末尾才有'\0'结束符号吗?字符数组有没有 -
33254尚路
: 是的! a[]={'a,''b','c'} 其实等于a[]={'a,''b','c','\0'}; 你要是用sizeof(a)看的话其大小是等于4 由于很多字符串处理函数和宏,如strcpy,memcpy之类的都是以字符串的结束符作为函数完成的终点,所以字符串数组都要以结束符结束. 其实数值数组也是一样的,要是没有结束符也会越界,只是数值数值一般不会被用在strcpy之类函数中.