C++ Primer Plus 学习记录——复合类型1
复合类型:以基本类型(整型和浮点型)为基础拓展的类型
一、数组:一种能够存储多个同类型值的数据格式
1、声名数组:typeName arrayName[arraySize]
2、数组初始化:只有定义时才能初始化,不能将一个数组赋值给另一个数组
typeName arrayName[arraySize]={value1,value2,…valueN}
- arraySize不能大于大括号中value的数量;
- arraySize可以为空,数组元素的个数通过{}中的value的数量自动确定;
- 特殊情况:如果只对其中一部分元素进行了初始化,则其他元素自动设置为0,例如:int array[10]={0}所有元素为0;int array[10]={1}只有第一个元素为1,其他为0。
3、数组声明后,可以通过[]索引,对每个元素分别赋值,[]中的索引数比其在数组中的位数小1。
二、字符串:存储在内存的连续字节的一系列字符
字符串与一串字符的区别在于:字符串的以空位符’\0‘结尾,处理字符串的函数都以’\0’为结束标志。
1、c-风格字符串
1、初始化
- 和数组初始化类似:用大括号初始化,但最后一个value必须为’\0‘
- 使用字符串常量进行初始化,字符串常量为使用” “引用的字符串,其隐式的包含了空位符。
2、字符串的输入
- 采用cin:由于cin使用空白(空格、制表符和换行符)来确定字符串的结束位置,所以只能输入一个单词。
- cin.getline(name,size):读取到size-1或者读取完一行或者换行符,然后自动加上’\0‘。不会读取换行符在字符串中,而是保留在输入流中
- cin.get(name,size):和geiline()一样,但是会保留换行符在字符串中。
- cin.get():读取输入流中的一个字符。
- cin>>、cin.get()、cin.geiline()会返回一个cin对象:可以使用(cin>>dsd).get()等类似用法。