C++学习[2]--字符串和字符串数组的思考
来源:互联网 发布:电脑桌面提醒软件 编辑:程序博客网 时间:2024/06/08 00:49
1 字符串和字符串数组的区别
字符串char *s="awdwdawd"是按照常量的,期间的值不允许进行修改,
字符串数组,则是可以修改的,为什么?因为字符串数组在赋值的时候,比如char s[]="wadawdwd";是先生成一个wadaad的常量字符串,然后再分别将这个字符串常量的各个值拷贝到字符串数组的内存区域,数组的内存区域的值才可以修改的,因此生成的字符串数组的内容,其实是一个拷贝。
2 字符串的显示和内容。
字符串的声明主要有两种,一种是字符串常量,一种是字符串数组。
比如
char *s="deda"
char *s=new char[100] 这个虽然类似于动态分配int数组的方式,但是我自己试了试,动态分配int数组,初始化后,还可以针对特殊值进行修改过的,但是如果是动态分配这个字符串,初始化后,只具有只读的属性,无法对特定字符串进行修改。int和char动态分配这种区别的深层的原因我也不太清楚。
所以我觉得上面的其实不叫动态分配数组了,只能叫动态分配字符串。
字符串数组
char s[10]="dawdawd"
或者char s[]="dawdawd" 这样的是字符串数组,而且初始化后,对他的某个值进行改进,里面的具体值可以修改的。
3 剩余的东西。
比如我要新建一个字符串数组 char s[80]="welcome";
如果我们用cout去显示,那么这个80个元素大小的char型数组会显示welcome,它的紧接下来的元素就是"\0",那么更后面那些没有赋初值的变量呢? 乱码。。。我原以为会自动赋值为0。。但是我想多了,因此这种时候要尽量避免在运算时将这后面的乱码元素考虑进去。
cout之所以能够显示正确的welecom,我估计是里面已经内置了检测结束符"\0"的机制,因此他只截取有用信息,剩余的他就不考虑了。
4 数组是数组,他的大小一旦规定了,就不可更改了,我们只能改内容,但是不能更改数量属性。
- C++学习[2]--字符串和字符串数组的思考
- 字符串数组和字符串指针(有关于指针的思考)
- C数组和字符串
- C和Java字符串和字符串数组的异同点
- C语言指针字符串和数组字符串的一点区别
- C语言字符串和字符串数组的输入赋值
- C语言学习入门 (四) 字符串、字符串数组、字符和字符串相关函数
- C语言学习入门 (四) 字符串、字符串数组、字符和字符串相关函数
- C 字符数组和字符串
- C语言------数组和字符串
- C语言 数组和字符串
- c语言 数组和字符串
- 和实现有关的相同字符串存储方式检验的思考及c-string字符串
- ios开发-c语言之指针和数组以及指针和字符串的学习
- 学习笔记4-C语言数组和字符串
- 关于C语言字符串函数的思考
- 关于C语言字符串函数的思考
- 黑马程序员——C语言学习笔记04 字符、数组和字符串的一些要点。
- 基于注解风格的Spring-MVC的拦截器
- gsoap向java webserverce传输中文乱码问题
- jsp输入限制正则表达式
- JAVA基础之理解JNI原理
- stream_set_blocking让程序无阻塞
- C++学习[2]--字符串和字符串数组的思考
- ln命令:硬链接和符号链接
- ThreadLocal原理与应用
- VisionMobile:2013年Q3移动开发者经济报告(十):第九章、开发者工具:穿越平台创新的前沿
- Xcode 真机测试破解方法(转加修改)xcode 4.3 通过
- 大小写互换
- 数数小木块
- Linux那些事儿之我是EHCI 引子
- PHP利用fsockopen POST HTTP请求(URL)并获取返回值