第4章 复合类型

1、数组的声明应指出以下三点:

(1)、存储在每个元素中值得类型;

(2)、数组名;

(3)、数组中的元素数(它必须是整型常数如(10)或const值,也可以是常量表达式(如8 * sizeof(in) ),不可是变量 。

2、如果只对数组的一部分进行显示初始化,则编译器将把其他元素设置为0;

3、C++标准模板库(STL)提供一种数组替代品--模板类vector。而C++11新增了模板类array。

4、C-风格字符串数组具有一种特殊性质,以空字符(\0)结尾(其对C-风格字符串而言至关重要),其ASCII码为0。

5、在确定存储字符串所需的最短数组时,别忘记将结尾的空字符计算在内。

6、sizeof()运算符指出的是整个数组的长度,strlen()函数返回的是储存在数组中的字符串的长度,且strlen()只计算可见的字符,而不会将空字符计算在内。

7、cin使用空白(空格、制表符和换行符)来确定字符串的结束位置。因此只能输入一个单词。istream类提供了一些面向行的类成员函数,getline() (其将丢弃换行符)和 get()(将换行符保存在输入序列中)。这两个函数都读取一行输入,直到到达换行符。

8、C++常用指针,而不是数组来处理字符串。

9、C++通过添加string类扩展了C++库,要使用string类,必须在程序中包含文件string。string类位于名称空间std中,因此必须提供using 编译指令。

10、对于C-风格字符串,可以使用函数strcpy()将字符串复制到字符数组中,使用函数strcat()将字符串附加到字符数组末尾。

11、未被初始化的string对象的长度被自动设置为0;

12、C++允许在声明结构变量时省略关键字struct;

13、C++不提倡使用外部变量,但提倡使用外部结构声明。另外,在外部声明符号常量通常更合理。

14、指针名表示的是地址,*运算符被称为间接值或解除引用运算符,将其应用于指针,可以得到该地址出存储的值。

15、可以在声明语句中初始化指针,在这种情况下,被初始化的是指针,而不是它指向的值。

16、在C++中创建指针时,计算机将分配用来存储地址的内存,但不会分配用来存储指针所指向的数据的内存。为数据提供空间是一个独立的步骤。一定要在指针应用解除引用运算符*之前,将指针初始化为一个确定的,合适的地址。

17、、要将数组值作为地址来使用,应通过强制类型转换将数字转换为适当的地址类型

18、new分配的内存块通常与常规变量声明分配的内存块不同。常规变量被存储在称为栈(stack)的内存区域中,new从被称为堆(heap)或自由存储区的内存区域分配内存。

19、在C++中,值为0的指针被称为空指针。

20、delete 运算符可以释放指针指向的内存,但不会删除指针本身。换句话说,可以将指针重新指向另一个新分配的内存块。一定要配对地使用new和delete,否则将发生内存泄漏。

21、不能使用delete来释放声明变量所获取的内存。只能用delete来释放使用new分配的内存。

22、注意delete和指针之间的方括号。如果使用new时,不带方括号,则使用delete时,也不应带方括号。如果使用new时带方括号,则使用delete时也应带方括号。

23、一般来说,如果给cout提供一个指针,它将打印地址,但如果指针的类型为char*,则cout将显示指向的字符串。

24、应使用strcpy()或strncpy(),而不是赋值运算符来将字符串赋给数组。

25、C++有3种管理数据内存的方式,自动存储,静态存储和动态存储(又叫自由存储空间或堆)

(1)、自动存储:在函数内部定义的常规变量使用自动存储空间,被称为自动变量(通常存储在栈中)。它们在所属的函数被调用时自动产生,在该函数结束时消亡。其是一个局部变量,作用域为包含它的代码块(代码块:是包含在花括号中的一段代码)

(2)、静态存储:静态存储是整个程序执行期间都存在的存储方式。使变量成为静态的方式有两种:一种是在函数外面定义它。另一种是在声明变量时使用关键字static。

(3)、动态存储:是利用new和delete运算符提供的一种比自动变量和静态变量更灵活的方法。数据的生命周期不完全受程序或函数的生存时间控制。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值