我的c++笔记[3]
来源:互联网 发布:c语言b 是什么意思 编辑:程序博客网 时间:2024/06/14 05:29
1. 在函数体内定义的内置数组,其元素均初始化为0;在函数体内定义的内置数组,其元素均无初始化;不管数组在哪定义,如果其元素为类元素(如string类),则自动调用该类的默认构造函数进行初始化。如果该类没有默认构造函数,则必须为该类数组元素提供显示的初始化。
2. 动态创建的数组,可以在句尾用()自动初始化数组中的值(默认值)。如int *a = new int[10]();//此时数组a中的所有元素的值为0。
3. 字符数组既可以用一组由花括号括起来、逗号隔开的字符字面值({'C', '+', '+'})进行初始化,也可以用一个字符串字面值(“C++”)进行初始化。然而,要注意这两种初始化形式并不完全相同,字符串字面值包含一个额外的空字符(null)用于结束字符串。
4. 与vector不同,一个数组不能用另外一个数组初始化,也不能将一个数组赋值给另一个数组。
5. 指针的概念很简单:指针用于指向对象。与迭代器一样,指针提供对其所指对象的间接访问,只是指针结构更通用一些。与迭代器不同的是,指针用于指向单个对象,而迭代器只能用于访问容器内的元素。
6. 指针的基本用途是为了能够在函数内修改“外部对象”。
7. char*tmp = NULL; tmp++;//错误,不能这样使用++。正确的是char* tmp = new char[10];//举例为十个元素的数组。这样也可以:char*tmp = getCharA();//getCharA的返回值是char*;
8. 建议尽量避免使用指针和数组。许多有用的程序都可不使用数组或指针实现,现代C++程序采用vector类型和迭代器取代一般的数组、采用string类型取代C风格字符串。
9. 理解指针声明语句时,请从右向左阅读。(如 string *pstring;//把pstring定义为指向string类型对象的指针变量)
10. 何时使用const迭代器?又何时使用const_iterator?解释两者的区别。
答:const迭代器是迭代器常量,该迭代器本身的值不能修改,即该迭代器在定义时需要初始化,且初始化之后,不能再指向其他元素,若需要指向固定元素的迭代器,则可以使用const迭代器。
const_iterator是一种迭代器类型,对这种迭代器类型解引用会得到一个指向const对象的引用,即通过这种迭代器访问到的对象是常量。该对象不能修改,因此,const_iterator类型只能用于读取容器的元素而不能修改元素的值。若只需遍历容器中的元素而无需改变元素的值,则可用此类型。- 我的c语言笔记
- 我的小小学习笔记(3)----C的关键字
- 我的《C专家编程》学习笔记
- 我的c语言笔记---- 指针
- 我的c语言笔记--函数
- 我的c语言笔记---字符串
- 我的c语言笔记---位运算
- 我的c语言笔记--枚举
- 我的c语言笔记---预编译
- 我的c语言笔记---文件管理
- 我的C语言复习笔记
- 我的C语言笔记1
- 我的Objective C笔记,我的第一课。
- 我的c++笔记[3]
- cs231n笔记之我的笔记3
- 我的C/C++ 学习笔记 之 约定
- 我的c语言复习笔记1-说说for循环
- 我的C语言笔记 --- 复杂类型的确认
- Sprite Kit编程指南(9)-Sprite Kit最佳实践
- 北京、上海家庭年收入情况统计 (zz)
- cvGetCaptureProperty函数
- 4950. 编一个基于对象的程序,求长方柱的体积 考察类
- Objective-c 中 nil, Nil, NULL和NSNull的区别
- 我的c++笔记[3]
- 电解离子水用于植物
- view to image
- 各编译器对C++11的支持比较
- Oracle合并查询
- .Net可空值类型
- 性能调优攻略
- winfrom 控件显示悬浮提示框
- mapr- hadoop 更换坏掉的磁盘