1、数组
typename Arrayname[arraysize]
数组的初始化方式
1:int arrayname [ 4 ]
2: int hand [ ] = { 1, 2, 3, 4 }
初始化数组时,等号可以省略
可不在大括号内包含任何东西,相当于把所有元素都设置为0.
2、字符串
第一行中并不算一个字符串,所有字符串都会在结尾加一个结束符 \0 空字符
这种方式用char数组是什么麻烦的的,且需要大量的单引号等等,
所以一般直接使用string 在sting name = "sssss" ,在这句中的双引号结尾,他会自动在结尾加一个空字符。
注意:字符常量不能与字符串常量进行混淆
字符常量使用单引号,字符串常量使用的是双引号。
拼接字符串常量
sizeof( ) 运算符返回的是整个数组的长度
strlen( )运算符返回的是数组内可见字符的个数
每次读取一行字符串
面向行的输入:getline()函数读取整行
面向行的输入:get()
get函数并不会读取并丢弃换行符,而是将其留到输入队列中。
需在头文件中加上#include <string>
3、Sting类
1、string类字符串初始化方式
2、字符串的拼接、赋值、和附加3、sting类字符串的其他操作
strcpy()赋值
strcat()末尾附加
其他类型的字符串字面量
还有一种原始字符串(RAW)
在字符串前加上前缀R 原始字符串表示的就是原来什么样就是什么样,它并不认识什么转义字符。将其全部当作普通字符处理。
4、结构体
结构体声明语法如下:
随后便可以声明结构体变量
inflatable aa; C++相较于C语言在结构体变量声明时,可以省略掉struct关键字。
什么叫位字段
指定了占用特定位数的结构成员
语法: 字段数据类型 字段名 : 数字(指定了使用的位数)
5、共用体UNION
结构体可以同时存储多种数据类型的数据,
但是共同体在同一时间内只能够存储一种数据类型的数据
6、指针的使用的金科律令
指针内存储的是所指向的地址值
* 指针 用于获得表示指针所指向的内存的值。
& 变量 用于表示这个变量的地址。
使用new来创建动态结构
inflate *p = new int
创建一个int数据类型长度的内存,并将这块内存的地址值赋值给p,使得指针p指向这块内存。
关键:使用这种动态创建结构的方法并不能够使用成员变量句点运算符,因为我们只知道这块创建出来的地址值,并不知道这个结构变量的名称 因此只能够使用 ---> 来访问成员变量。
C++管理内存数据的方式:自动存储、静态存储、动态存储
第九章会说明 线程存储
自动变量:其实就是在函数内定义的普通变量,就是常说的局部变量,他会存储在栈中,自动变量在函数被调用的时候自然产生,在函数结束的时候消亡。
静态存储:静态存储时在整个程序执行过程中都存在的,有两种方式可以使变量成为静态:1、将变量定义在函数外面 2、在定义变量时加上static关键字
动态存储:new和delete运算符提供了一种比自动变量以及静态存储更加灵活的存储方式,他们管理了一个内存池被称为 堆。