C++ Primer知识系列一:预备知识、数据及基本类型

来源:互联网 发布:java调用方法格式 编辑:程序博客网 时间:2024/06/05 20:39

C++ Primer知识系列一:预备知识、数据及基本类型

1、预备知识

编程过程:源代码(.cpp)编译器目标代码(.obj)链接程序(启动代码及库代码)可执行代码(.exe)

注释://单行,/*多行*/;C++对大小写敏感;预处理器编译指令:#include;变量使用前必须声明。

2、处理数据

没有任何一种整型和浮点型可以满足所有的编程要求。

变量名:只能使用字母字符,数字和下划线;第一个字符不能是数字;不能为关键字;以两个下划线或下划线和大写字母开头的变量名被保留给实现使用。

整型:

1字节=8位,1byte=8bits;sizeof返回类型或变量的字节长度

类型 位数(有效位数) short 16位 int short(5) long 32位int(10) long long 64位long(19),后缀LL

十进制:第一位0~9;八进制:第一位0,第二位1~7;十六进制:前两位0x。

char类型(字符或小整型):

字符使用单引号,字符串使用双引号。

类型 char -127~128 unsigned char 0~255 wcha_t wcin,wcout,前缀L char16_t 16位,前缀u char32_t 32位,前缀U

const限定符 const 类型 变量名=变量值;必须初始化

浮点数:

类型 float 32位 double 48位float(一般64位) long double double

cout.setf(ios_base::fixed,ios_base::floatedfield)防止使用E表示法,使用定点表示法。

浮点常量:默认double,float使用f后缀,long double使用L后缀。

缩窄:变量类型可能无法赋给它的值。

类型转换:强制转换:(类型) value或 类型(value)

auto:不指定变量类型。

3、复合类型

数组:

声明:类型 数组名[大小],数组下标从0开始。

初始化:={value1,value2,value3,…}禁止缩窄。

只有在定义数组时才能初始化且不能将一个数组赋给另一个数组;提供元素个数小于大小;只对数组一部分元素初始化,其他元素设置为0;初始化时[]可为空。

字符串:字符串以’\0’结束;char c[]=”…”;strlen计算可见字符长度;cin以空白(空格、换行和制表符)来确定字符串结束位置;cin.getline(数组名,字符数)自动在结尾处添加’\0’,遇到换行符停止;cin.get(数组名,字符数)会保留换行符在输入队列中;cin.get()读取下一行。

结构:

定义结构:struct 结构名 {成员;……};

创建结构变量:结构名 变量名;初始化 = {成员值1,…..};访问成员:”.”

结构数组:结构名 数组名[] = {{…},{…},…}

共用体:与结构类似,但只能存储其中一种类型

枚举:

enum 创建符号常量:enum 枚举名{枚举量…(从0开始)}。

枚举名 变量名; 变量名=枚举量(是整型,可以提升为int,但int不能转换为枚举);变量名=枚举名(有效整数)。

enum bits{one=1,two=2}可以设置枚举量的值

指针:是一个变量,存储的是地址。

类型* 指针变量 = 地址;*指针变量 指针指向地址的值;一定要在对指针变量应用解除引用运算符(*)前,将指针变量初始化一个确定地址。

使用new来分配内存:类型* 指针变量=new 类型;使用delete来释放内存:delete 指针变量;只用new创建动态数组:类型* 指针变量 = new类型[size] (delete[] 指针变量),不能用sizeof来确定动态数组的字节数,指针变量可直接当数组名使用。

指针运算:指针变量+1:增加他指向的类型的字节数;指针变量[i] = *(指针变量+i),数组名为第一个元素地址,但对数组名应用&得到的是整个数组的地址。

使用new创建动态结构:结构名* 指针变量 = new 结构名;使用指针或(*指针变量)访问成员。

原创粉丝点击