您好、欢迎来到现金彩票网!
当前位置:21点 > 字符串 >

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

发布时间:2019-07-04 02:07 来源:未知 编辑:admin

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。字符串总是以\0作为串的结束符。

  因此当把一个字符串存入一个数组时,也把结束符 \0存入数组,并以此作为该字符串是否结束的标志。有了\0标志后,就不必再用字符数组的长度来判断字符串的长度了。

  这后面的\0是由C编译系统自动加上的。所以在用字符串赋初值时一般无须指定数组的长度, 而由系统自行处理。 把字符数组str1中的字符串拷贝到字符数组str2中。串结束标志\0也一同拷贝。

  由于字符组str1的长度为13,所以后面的信息会丢失,即\0丢失。

  2. 如果在给数组赋值时,把每个字符单独用引号括起来。也会丢失\0。如:

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

  这后面的0是由C编译系统自动加上的。所以在用字符串赋初值时一般无须指定数组的长度, 而由系统自行处理。

  把字符数组str1中的字符串拷贝到字符数组str2中。串结束标志0也一同拷贝。

  由于字符数组str1的长度为13,所以后面的信息会“溢出”,即0存到字符数组str1以外的地方去了,这是很危险的。

  另外,如果在给数组赋值时,把每个字符单独用引号括起来。可能会丢失0。如:

  要么写成(故意给数组预留一个字节的空位,由系统自动初始化为0):

  char str1[14]={w,w,w,.,b,a,i,d,u,.,c,o,m};

  知道合伙人教育行家采纳数:17413获赞数:6546314年本科毕业于河南理工大学,至今就读于河南理工大学攻读硕士学位,从事编程学习已有5年。向TA提问展开全部

  因为c语言中没有字符串类型,所以借助字符数组来存储字符串,为了区别字符串,需要在字符数组的末尾添加ASCII为0,即\0,来作为字符串的结束标志,并且不计入字符串长度。

  字符串是借助于字符型一维数组来存放的,0ASCLL代码值为0,它作为标志占用存储空间但不记入串的实际长度,所以用来作为字符串的结束标志

http://magaltouba.com/zifuchuan/223.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有