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'
有下面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'