C++ 复合类型

数组:

C++ 11的初始化方式:

列表初始化:

可以省去等号 如:

double earnings[4] {1.23, 123, 1.654e2}

其次, 可不在大括号内包含任何东西, 这将把所有元素清零:

unsigned int counts[200]={}

第三, 列表初始化禁止缩窄转换:

long plifs = {  } // 错误

char slifs[4] {1122011} //错误, 1122011 超过了char数组的取值范围

字符串:

char fish[]="asdasdasd"

 

字符串在输入中会遇到的问题:

1. 无法获取 '\0'

cin.getling():

每次读取一行字符串的输入

用法: cin.getline(name, 20) 

这一行将把name 读入到数组中, 读取20个字符

cin.get 读取单次输入, 换行截止

 

string 类:

C++ 11中也可以用列表初始化 string 类

string类的操作:

string str1 ;

string str2 = str1 //copy str1 to str2 

 

char charr1[2];

char charr2[2]

strcpy(charr1, charr2) // copy charr2 to charr1  等价于 charr1=charr2 

 

共用体:

union

能够存储不同的数据类型, 但是只能同时存储其中的一种

适用情况:

当目标数据类型可能是某几种的一种时, 采用共用体可以减少开销

 

枚举:

本质为一种符号常量, 可以代替const, 允许定义新类型

 enum{ zero, null = 0 , one , numero =1 }

注意,  每定义一个枚举变量, 下一个就会比上一个多1, 但是,枚举可以允许值相同, 所以, zero==null =0 

使用指针需要注意的地方:

long *fellow;

*fellow = 2333323 // 将一个值放在了未知的区域

危险的地方:

起初fellow 没有被赋值, 所以fellow可能指向任何地方, 但是223323不知道被放在哪里

于是fellow 指向的地方很可能不是所要存储223323的地方, 这会导致一些难以查询的错误

 

posted @ 2019-02-26 13:31  Derek丶D  阅读(145)  评论(0编辑  收藏  举报