数组(C++ Primer学习笔记)

本文详细介绍了C++中数组的维度定义规则、内置数组的初始化方式、类类型数组的初始化、数组间的操作限制、指针的声明与使用、void*指针的功能以及表达式中数组名的转换规则。

1.数组的维数必须用大于等于1的常量表达式定义。此常量表达式只能包含整型字面值常量,枚举常量或者用常量表达式初始化的整型const对象。非const变量以及要到运行阶段才知道其值的const变量都不能用于定义数组的维数。

2.在函数体外定义的内置数组,其元素均初始化为0;在函数体内定义的内置数组,其元素无初始化。

3.不管数组在哪定义,如果其元素为类类型,则自动调用该类的构造函数进行初始化;如果该类没有默认构造函数,则必须为该数组的元素提供显式初始化。

4.一个数组不能用另外一个数组初始化,也不能将一个数组赋值给另一个数组。

5.如果要在一个声明句中定义两个指针,必须在每个变量标识符前再加符号*声明:如string *ps1, *ps2。

6.void*指针可以保存任何类型对象的地址。它只支持几种有限的操作:与另一个指针进行比较;向函数传递void*指针或从函数返回void*指针;给另一个void*指针赋值。

7.在表达式中使用数组名时,该名字会自动转换为指向数组第一个元素的指针。

8.两个指针之间的减法操作的结果是标准库类型ptrdiff_t的数据。与size_t类型一样,ptrdiff_t也是一种与机器相关的类型,在cstddef头文件中定义。size_t是unsigned类型,而ptrdiff_t则是signed整型。

9.如果在自由存储区中创建的数组存储了内置类型的const对象,则必须为这个数组提供初始化,如const int *pci = new const int[100](); C++允许定义类类型的const数组,但该类必须提供默认构造函数。

10.删除0值的指针是合法的,但是这样做没任何意义。如int *ip =0; delete ip;

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值