字符串和字符数组的区别是什么? 及下标越界,指针下标

字符串:必须以'\0'结尾;                                 //  ‘ \0 ’ 的意义是“字符串结束符”。

字符数组:可以包含多个'\0',但是如果当做字符串处理,则实际有效字符串为第一个'\0'的签名的字符串,如果当做字符数组处理,可以处理字符数组的任何一个字符,所有的字符都可以是'\0'。

假设一个字符指针指向字符串“aaaaaa”,如果通过指针下标是第三个a为'\0',则字符指针就只有三个长度,如果你的下标超过3则越界,字符数组只要不超过数组大小就不越界。

(就是超过数组下标范围,比如,你声明数组a时的最大下标是15,出来一个a(16),就是下标越界

(指针使用下标时,可以理解为数组.例如:
   char *p = "abcdef";
   此时p[2]值 为'c'.而p表示字符串"abcdef"的首地址,*p的值则相当于p[0],值为'a'.)

 

转载于:https://www.cnblogs.com/yyy251/p/6472758.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值