[C++ Primer Plus]第四章

1.sizeof用于数组名,得到的是整个数组中的字节数,如果用于数组元素,得到的是数组元素的长度,如果用于指针,得到的是指针的长度
2.如果只对数组的一部分初始化,则编译器将把其他元素设置为0
3.C++11支持的数组初始化
1)int a[4] {1,2,3,4};
2)char a[4] {};  //all set to 0
4.C++11支持的字符串初始化
char a[] {"Hello world"};
string a {"Hello world"};
5.C++11支持的结构初始化
struct a {
    int x;
    char y;
    float z;
}
a {1,'u',1.0};
a {}; //x=0 y=0 z=0
6.任何两个有空白(空格 制表符 换行符)分隔的字符串常量都将自动拼接成一个
7.读取整行cin.getline(addr,size)以换行符来确定输入结尾,最多读取size-1个字符并在结尾添加'\0'
8.string类对象初始化
1)C风格字符串
2)使用cin将输入存储到string对象
3)使用cout来显示string对象
4)可以使用数组表示法来访问存储在string对象里的字符
9.一个string类对象可以赋给另一个string类对象,未初始化的string类对象的长度为0
10.C++允许在声明结构变量时省略struct,可以将结构作为参数给函数,也可以让函数返回结构,还可以让一个结构赋给另一个结构
11.共用体是一种数据格式,他能够存储不同的数据类型,但只能同时存储其中的一种类型,公用体的长度为其最大成员的长度
12.对于枚举,只定义了赋值,枚举量是整形,可以提升为int形,但int形不能自动转换为枚举类型
13.C++使用new运算符来分配内存,使用delete运算符来释放内存,C++中值为0的指针称为空指针,C++确保空指针不会指向有效的数据,对空指针使用delete是安全的,两次delete同一个地址的行为是不确定的
14.使用new来创建动态数组,使用delete来释放数组
int *p = new a[10];
delete [] p;
15.使用指针来访问数组时,指针与数组等价,但是不能修改数组名的值,数组名被解释为第一个元素的地址,而对数组名取地址时,得到的是整个数组的地址
int a[10];
int *p1 = a;
int (*p2)[10] = &a;

猜你喜欢

转载自openwrt.iteye.com/blog/2228371