为了账号安全,请及时绑定邮箱和手机立即绑定

C语言数组

C语言数组

C
慕尼黑9521551 2017-07-10 14:02:26
数组最后不是应该'\0'  为什么书上有些直接把数组用完  没留下最后一个空间给'\0'比如a[2]只能给a[0]赋值a[1]应该留给'/0'
查看完整描述

2 回答

?
qq_追梦_26

TA贡献15条经验 获得超2个赞

不一定说数组的最后一个存储的‘\0’,‘\0’的ASCII为0,是不可显示字符,如果你想用这个数组存储字符串,并且想打印类似于printf那么你就得将字符串的最后一个字符赋值为‘\0’,如果不赋值,可能会在正常的字符串后面出现一堆乱码(假设字符串最后一位不是0),也可能就打印那么多字符(假设最后一位是0),这个具体要看看你电脑内存当时定义你的字符串时申请出来的地址存储了,总之这样的问题是不可预知的,但是如果你只是想定义一个数组,并不进行打印,比较,复制等库函数的操作,那么这个数组最后一位也就没必要是‘\0’,例如int tmp[20]......因此不管怎样具体问题具体分析,不过如果是字符串的话做了打印,比较,复制等库函数的操作,记着一定保证最后一位是‘\0’结尾,编译器不会那么智能帮你把这件事情做了的。。。。

查看完整回答
反对 回复 2017-07-10
?
慕粉0732086931

TA贡献2条经验 获得超1个赞

那个‘\0’一般用于储存字符串常量,是个转义字符,它的ASCII码值是0,为空字符。通常作为字符串结束的标志,起到一个供辨认的标志作用。程序中通过检测‘\0’的位置来判断字符串的长度

查看完整回答
反对 回复 2017-07-10
  • 2 回答
  • 0 关注
  • 1706 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信