一、C++的初步知识
(一)最简单的C++程序
main前面int的作用是声明函数的类型为整型。标准C++要求main函数必须声明为Int型。有的操作系统(如UNIX,Linux)要求执行一个程序后必须向操作系统返回一个数值。因此C++的处理是这样的:如果程序正常 ,则向操作系统返回数值0,否则返回数值-1。如果主函数首行写成void main()也能通过。只要记住在main前面加int,同时在main函数的最后加一个语句"return 0;”即可。
#include<iostream>是一个“包含指令”,它的作用是将文件“iostream"的内容包含到该命令所在的程序文件中,代替该指令。
文件iostream的作用是向程序提供输入或输出时所需要的一些信息。
在程序进行编译时,先对所有的预处理命令进行处理,将头文件的具体内容代替#include指令,然后再对该程序单元进行整体编译。
using namespace std;的意思是使用命名空间“std"。
return 0;的作用是向操作系统返回一个零值。如果程序不能正常执行,则会自动向操作系统返回一个非零值,一般为-1.
(二)C++程序的构成和书写形式
1、一个C++程序可以由一个程序单位或多个程序单位构成,每一个程序单位作为一个文件。
2、在一个程序单位中,可以包含以下三个部分:
(1)预处理指令
(2)全局声明部分
(3)函数
函数是程序中必须有的和最基本的组成部分。每一个程序必须包括一个或多个函数,其中必须有一个主函数。但不要求每一个程序文件都必须具有以上3个部分,可以缺少某些部分(包括函数)。
3、一个函数由两部分组成:
(1)函数首部
包括 函数名、函数类型、函数属性、函数参数类型、参数名。
一个函数名后面必须跟一对圆括号,函数参数可以缺省,如int main().
(2)函数体
包括局部声明部分和执行部分。
某些情况下可以没有声明部分和执行部分,如void dump(){}是一个空函数,什么也不做,但它是合法的。
4、语句包括两类。一类是声明语句,用来向编译系统通知某些信息;另一类是执行语句,用来实现用户指定的操作。
5、类是C++新增加的重要的数据 。在一个类中可以包括数据成员和成员 ,它们可以被指定为私有的和公用的属性,私有的数据成员和成员函数只能被本类的成员函数所调用。
二、字符集与词汇
(一)标识符
语法:以字母或下划线 ,由字母、数字和下划线组成的符号串
(二)分隔符
空格、逗号、分号、冒号、括号、注释都是分隔符
三、C++数据类型
类型名 | 字节 |
字符型 | 1字节 |
短整型 | 2字节 |
整型/长整型 | 4字节 |
浮点型 | 4字节 |
双/长整型 | 8字节 |
(一)整型
1、int
进制数 | 前缀/后缀 | 有无小数点 | 组成部分 | 正负表示 |
十进制 | 后缀:L(l)表长整数,U(u)表无符号整数;不能以0开头 | 无 | 数字0~9 | 正/负 |
八进制 | 前缀:0 | 无 | 数字0~7 | 正 |
十六进制 | 前缀:0x(或0X) | 无 | 数字0~9及a~f(或A~F) | 正 |
2、bool
逻辑类型只有两个值true和false
true:1
false:0
3、enum
枚举类型,是用标识符表的序号表示的数据
(二)浮点型
浮点数由整数部分和小数部分组成。
浮点型有两种示数法:
1、小数示数法(又称常用示数法)
组成:由数字和小数点组成
格式:小数点可在数字前面或后面,如13.89 .638 -452.
2、指数示数法(又称科学示数法)
组成:由尾数、指数符和指数组成
格式:尾数 E|e 指数
- 其中尾数可以是整数或小数,指数必须是整数;
- 指数符可以为E或e,表示以10为底的指数;
- 指数和尾数都不能省略;
(三)字符型
除了用字符表示字符型之外,可以用ASCII码的八进制数值、十六进制数值之前添加转义符反斜杠”\“,表示把它们的值转换成字符
四、数据对象与访问
(一)变量定义
变量定义的作用是要求编译器在内存申请指定类型的存储空间,并以指定标识符命名。
(二)访问变量
在内存建立一个对象后,可以用名方式和地址方式访问。
1、名访问
变量=表达式
2、地址访问
*号有两个作用:
(1)在地址值之前是指针运算符
(2)在变量说明语句中是指针类型符
3、指针变量与间址访问
能够存放地址值的变量称为“指针变量”;
指针类型变量定义形式
4、
5、当要表示一个指针变量不指向任何内存单元时,可以赋NULL值,则它的值是不确定及无意义的。
6、指针变量的关联类型可以为空类型void.
例如:void*vp;
void指针变量能够存放任意对象的地址,因此在程序中必须对其作强制类型转换,才可以按指定类型使用数据。
五、表达式
逻辑表达式
(一)关系运算
1、true:1;false:0;
2、四种比较运算符的优先级高于“=="和”!="
(二)逻辑运算
1、优先级高低
!→算术运算符→关系运算符→&&→||
2、逻辑真值表
a | b | !a | !b | a&&b | a||b |
真 | 真 | 假 | 假 | 真 | 真 |
真 | 假 | 假 | 真 | 假 | 真 |
假 | 真 | 真 | 假 | 假 | 真 |
假 | 假 | 真 | 真 | 假 | 假 |
三、赋值表达式
赋值表达式又称“左值表达式”,因为表达式的值确定于一个存储单元,所以可以放在赋值号的左边,也可以放在赋值号的右边;
像数值10等,不能确定一个存储单元,所以只能放在赋值号右边,称为“右值表达式”
如 a=b+3=10 //错误
(a=b+3)=10 //正确
四、条件表达式
1、举例:(a=b)=10
先执行把b的值赋予a,然后执行a=10.上面式子对a做了两次操作,对b做了一次操作。结果为仅仅a=10.
2、举例:求a、b、c中的最大值,用条件表达式可以表示为:
a>b?a>c?a:c:b>c?b:c相当于a>b?(a>c?a:c):(b>c?b:c) //当a大于b的时候,输出a和c中的最大值;当b>a的时候,输出b和c 中的最大值
五、逗号表达式
含义
1、各表达式按顺序执行
如 x=a=3,5*6 //x值为3;
2、逗号表达式也表达一个值,这个值是最后一个表达式的值
如 x=(a=3,2*6) //x值为12;
六、