字符串及‘\0‘的相关一些问题

 

一、

除了倒数第二个sizeof

其他都是两个字节,第一个位置分别存了

①0(是字符不等价于'\0')  说明了无论""里面是什么,结尾都会加'\0'但是注意在下面那种字符串里该斜杠零会起作用,0 不会,0会输出

②\                 体现了转义字符是连起来算一个

                                         ③0(等价于'\0')   

                                         ④空格     第二个位置都为'\0'

倒数第二个sizeof说明该字符串为空串(只有'\0')等价于char a[10]={0};(这里是数字0等价于'\0')

二、

最下面两个printf说明了直接输出的时候是以字符形式输出

而且\055这种是认为八进制数代表的字符而不是\0加字符55

\0955表示\0加字符955,因为八进制数里面不包括8及其以上的数

三、

 

1.为什么char a[5]="abcde";不报错有些C系统认为刚刚可以把有效内容放入,就不报错。

2.当不作为字符串使用时(即仅作为字符数组)可以输入的内容长度等于

最大空间,即不给出'\0'位置。但是如果不小心将其作为字符串输出时可能有误(因为没有'\0'结尾)故最好给'\0'预留位置。

3.作为字符串使用时,或者字符串形式初始化时(char a[5]=""这种形式)必须小于最大的空间不给'\0'留位置算错(但不一定报错原因见1),因为没有结束标志。

若有错,请指正。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值