mshd.net
当前位置:首页 >> C语言的字符串为什么以0作为它的结尾? >>

C语言的字符串为什么以0作为它的结尾?

在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。字符串总是以'\0'作为串的结束符。 因此当把一个字符串存入一个数组时,也把结束符 '\0'存入数组,并以此作为该字符串是否结束的标志。有了'\0'标志后,就不必再用字符数组...

两者是相同的。 例:char *str="abcd"; memset(str+3, 0, 1) ==> str="abc" memset(str+3,'\0',1) ==> str="abc" 此二者等价 但 memset(str+3,'0',1) ==> str="abc0" 从另一个角度 (int)(0) = 0 (int)('\0') = 0 (int)('0') = 48

'\0'就是8位的00000000,因为字符类型中并没有对应的这个字符,所以这么写。在数值类型里就代表数字0。 补充: 这个你要去学下基础的,数值类型存储时,最高位决定正负号,其他位都为0可不就是0了么? '\0'是转译字符,意思是告诉程序,这不是字...

因为c语言中没有字符串这种数据类型,只有char字符类型,在C语言中所谓的字符串其实是char数组,数组最后一个元素加上"\0",表示字符串结束,这是一种字符串的表达方式。

是字符串常量最后有一个结束符号。 所以,在变量初始化那里, char x[ ]=“abcdefg”,把字符串常量赋值给数组,数组x元素个数就多了一个结束符号。 而y数组是按照字符赋初值的,所以y元素个数就是字符个数。 所以这里如果用字符串函数strlen获取...

首先做为结束符的 \0 是不会输出到显示里的 其次,*str最后对应的是 \0,而 \0对应的int 值是0,int dsip()的返回值是0 ,最后输出的当然是0了

\000明显就是\0的三位八进制,所以是一样的 \00就要看后面的一位是不是数字,如果是数字也是三位八进制表示法,如果不是数字那\0就是结束标志了

因为你是一个一个地输出数组的所有元素,包含没有初始化的元素,所以会有奇怪符号出现。 你可以把 char a[10],b[10],c[10]; 这个声明,放到 int main() 之前声明,编译器就会处理它们为全局量,并初始化,情况就会改善。 另外,'\0' 是字符串结...

gets,scanf都会在末尾加上\0的,要不然字符串就没法结束了; 他们的不同在于,scanf碰到缓冲区里面的空字符(空格,tab,回车,换行就会截断并添加\0),而gets是要等回车才截断字符串并添加\0的 比如用输入字符串:abcdefg hijk回车 用scanf的话,...

#include "stdio.h"int main(){int i,j; char str[]={"123\0234\0345"};//字符串中\0dd是八进制数,字符串需做处理,具体如下: char st[20];i=0;j=0;while(str[i]!='\0'){if(str[i]

网站首页 | 网站地图
All rights reserved Powered by www.mshd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com