sizeof,size,length,strlen,对于c风格字符串和string操作

c风格字符串:"sdsadsa"
有下面2中方式:char* p="sdsdsd";cahr p[]="sdsdsds";后面这种实际上在某种情况下是可以作为字符数组的缩写的;char p[]={'','','',};
即后面这种表达方式甚至是后面这种表达方式的实际情况都是可以这么认为的:在具体的语境的情况下:当使用strlen的时候,把他当做是字符串常量进行
操作,但是当为定义数组的时候就是为字符数组的表达方式了;
字符串常量为常量表达式子:
c风格字符串必须是以'\0'结尾,即上面的字符数组的表达方式的情况下,如果不以'\0'结尾的话就不算是,即使是语义合情合理。
sizeof:size:strlen:length()
有的操作是尽限制在c风格字符串的,strlen(),但是这个操作符不计算c风格字符串结尾的‘\0’,sizeof返回的是字节数,对于c风格字符串而言的话对于
char* p的情况表达的就是一个指针情况,那么就是4,对于后面的char p[]就是具体的c风格字符串的个数,包括'\0',不会吧这个秒杀掉,因为c风格字符串的确含有这么一个
而对于string使用sizeof就是很不合适,经过我的计算gcc永远是4,vc就是变化的,根据含有的个数不一样而变化。对于length和size就是string之中含有的个数了,其中c++便准库那本书
之中有这么一句话就是:当c风格字符串作为单个的操作参数的时候是包含'\0',多个的话就是不含有'\0'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值