博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ Primer Plus 札记(一) 数组,字符串和string
阅读量:6618 次
发布时间:2019-06-25

本文共 976 字,大约阅读时间需要 3 分钟。

  hot3.png

   C++中的数组可以看做是一个连续的,大小相同的内存地址块,数组名是地址块中的第一个地址,如有数组

int array[4] = { 1, 2, 3, 4};

   那么array在计算机中的内存存储可能为

  

  而且数组名array的地址是0x...10

  C++处理字符串的方式有两种,第一种是来自C-风格字符串,第二种是基于string类库,首先来看第一种C-风格字符串

  C-风格字符串实际上就是一个以空字符('\0')结尾的字符数组, 所以她在内存中的地址也是连续的,如有字符数组

char cs[] = {'h','e','l','l','o','\0'};

   那么她就是一个C-风格字符串,但是上述写法需要太多单引号和逗号,且必须手动加上空字符('\0'),对此,系统提供一种更简洁方便的方法,称为字符串常量或字符串字面值,即

   可以写成char cs[6] = "hello";或者让编译器自动计算字符串常量的长度,写成char cs[] = "hello";

   这种用双引号括起的字符串隐式的包括结尾的空字符,所以在确定存储字符串所需最短数组时,记得将结尾的空字符计算在内,如

  char cs[5] = "hello";  //编译器将会报错char[6]类型的值不能用于初始化char[5]类型的实体

  正确应该写为 char cs[6] = "hello";

  下面来看第二种基于string类库的字符串,IOS/ANSI C++98添加了string类型扩展了C++库,可以用string类型而不是字符数组来存储字符串,并且简化了诸如字符串复制,添加等操作,在C-风格字符串中,可以使用strcpy将字符串(数组)复制到另一字符串(数组)中,还有添加函数strcat, 计算长度函数strlen等等,而在string中则要简单得多,如

int _tmain(int argc, _TCHAR* argv[]){		using std::cout;	using std::endl;	char c1[9] = "hello";	char c2[5] = "lili";	strcpy_s(c1,c2);	cout << c1 << "," << c2 <

     博客其他文章列表

     

转载于:https://my.oschina.net/helu/blog/616875

你可能感兴趣的文章
让织梦CMS的后台编辑器支持优酷视频
查看>>
Python语言中round函数的一个疑惑
查看>>
Spring事务隔离级别,事务传播行为
查看>>
CRC是什么?
查看>>
每次看完羽毛球赛
查看>>
第一章练习题
查看>>
三、JVM垃圾回收1(如何寻找垃圾?)
查看>>
RabbitMQ-从基础到实战(2)— 防止消息丢失
查看>>
【译】ExtJS 4.1会带来什么
查看>>
重要的话
查看>>
mysql多个TimeStamp设置(转)
查看>>
php中的占位符
查看>>
Strus2学习Exception处理集锦(一)
查看>>
BSS段 data段 text段 堆heap 和 栈stack
查看>>
数据库创建好之后如何创建scott用户
查看>>
EBS销售订单挑库发放处理程序
查看>>
crontab报错
查看>>
docker内存限制
查看>>
动态大小的图片上的超链接
查看>>
总结一下常用的排序,冒泡排序,选择排序,快速排序
查看>>