一、板式: C++运行形成可执行的二进制文件(.eve)及源程序文件(.cpp)
#include (预处理命令)
using namespace std;(使用命令空间std)
int main()(主函数main首部)
{
int _;(定义变量)
cin>>>>>>endl;(输入语句.endl表示换行)
cout<<”字符串\n”<<;(输出语句.\n表示换行<仅适用于引号内>)
return 0;(函数结束)
}
二、函数:
1、代码前定义:
int 函数名(变量类型 变量名称,变量类型 变量名称……)(定义整型函数及自变量)
{
int 变量名称;(因变量)
——————;(函数主体)
return(变量名称);(给出因变量)
}
2、代码后定义:
{int 函数名(变量类型 变量名称,变量类型 变量名称……)(开头声明是什么类型变量)
。。。。
} int 函数名(变量类型 变量名称,变量类型 变量名称……)(定义整型函数及自变量)
{
int 变量名称;(因变量)
——————;(函数主体)
return(变量名称);(给出因变量)
}
三、类:
包括数据(数据成员)和函数(成员函数)。指一组数据和有权调用这些数据的函数封装在一起,组成的数据结构。是由一批数据及对其操作的函数组成的。封装性和信息屏蔽
class 类名(声明在主函数之前)
{ private:(以下为私有部分,即只能被类以内的语句调用)
int 变量名;(私有变量)
void 函数名()(私有函数)
{。。。。
}
public:(以下为公共部分,即可被类以外的语句调用<友元类特殊>)
int 变量名;(公共变量)
void 变量名()(公共函数)
{。。。。
};
};(类结束)
类名.变量,变量;(定义类名型的变量,成为对象)
对象名 函数名();(调用对象—的---函数)
四、数据类型:
1、基本类型:储存方式为按二进制数形式储存。
!、整型:短整型(short int) 整型(int)长整型(lone int)
!!、字符型(char)
!!!、浮点型:单精度型(float) 双精度型(double) 长双精度型(lone double)
!V、布尔型(bool)(逻辑型)
在visual c++中,对float提供6位有效数字,对double提供15位有效数字,实际用不上long duouble。在GCC中对long double提供12个字节。
2、派生类型:
!、指针类型
!!、枚举类型(enum)
!!!、数组类型(【】)
!V、结构体类型(struct)
V、共用体类型(union)
V!、类类型(class)
3、空类型(void)(无值型)
1、【】中的部分可以省写
整型 【signed】int 4字节 -231~231-1
无符号整型 Unsigned【int】 4字节 0~2^32-1
短整型 Short【int】 2字节 -215~215-1
无符号短整型 Unsigned short【int】 2字节 0~2^16-1
长整型 Long【int】 4字节 -231~231-1
无符号长整型 Unsigned long【int】 4字节 0~2^32-1
字符型 【signed】char 1字节 -128~127
无符号字符型 Unsigned char 1字节 0~255
单精度型 float 4字节 3.410-38~3.4*1038
双精度型 Double 8字节 1.710-308~1.7*10308
长双精度型 Long double 8字节 1.7*10-308~1.7*10308
signed表示有符号,以补码形式存在,可有负数,储存单元中最高位(bit)表示数值的符号。unsigned表示无符号,不以补码形式存在,不能表示负数,但正数范围扩大至两倍。
2、c++未规定每一种数据所占的字节数,只规定int类型不大于long型,不小于short型。一般在16位机中short与int占两个字节,long占4字节;在visual c++中short占两个字节,int和long占4字节。
五、数值常量:
常量:值不变的量,即常数。包括数值型常量和字符型常量
1、整形常量(整数)的类型:
根据数字大小确定整数类型。常量无unsigned型,但一个非负值的整数可以赋值unsigned型变量,但不能超过范围,否则会溢出。可以三种方式表示:
十进制整数 在一个整常量后面加一个字母I或L,认为是long int型常量。如果函数的形参为long int,则要求实参也为long int型
八进制整数 在常数的开头加一个数字0,表示以八进制数形式表示,即020表示(20)8
十六进制整数 在常数的开头加一个数字0和一个英文字母X(或x),表示一十六进制数形式表示,即0X20表示(20)16
2、浮点数表示方法:
十进制小数形式 由整数部分和小数部分组成,不能同时省略。C++一律按双精度处理,在实数数字加F或f为单精度,加L或l为长双精度
指数形式(浮点形式) 可写成指数形式,一般形式为数符 数字部分 指数部分
如3.1415可表示为3.1415x10º在程序中表示为3.1415e0。用字母e表示其后的数是以10为底的幂。在程序中不论把浮点数写成小数形式还是指数形式,在内存中都是以指数形式储存。
六、字符常量:
1、普通的字符常量:
用单撇号括起来的一个字符就是字符常量。如’a’,’#’,’%’,’D’都是合法的字符常量,在内存中占一个字节。
!:字符常量值包括一个字符,如‘AB’是不合法的
!!:字符常量区分大小写字母,如‘A’和‘a’是两个不同的字符常量
!!!:撇号(’)是定界符,而不属于字符常量的一部分
例:cout<<’a’’;输出的是一个字母“a”
2、转义字符常量:(特殊形式)
以“\”开头的字符序列。这种“控制字符”在屏幕上是不能显示的。将反斜杠(\)后面的字符转化成另外的意义,如“n”不再代表n而作为换行
字符形式 含义 ASCII代码
转义字符虽然包含两个或多个字符,但它只代表一个字符。编译系统在见到字符“\”时,会接着找到他后面的字符,把它处理成一个字符,在内存中只占一个字节。
3、字符数据在内存中的储存形式及其使用方法:
将一个字符常量存放到内存单元时,实际上并不是把该字符本身放到内存单元中去,而是将该字符相应的ASCII代码存放到储存单元中。存储形式与整数存储形式类似,故c++中字符型数据和整型数据间就可以通用。即一个字符数据可以赋给一个整型变量,反之,一个整形数据也可以赋给一个字符变量。也可以对字符数据进行算术运算,此时相当于对他们的ASCII码(注意字符数据值占一个字节,只能存放0~255范围内的整数)
4、字符串常量:
用双撇号括起来的字符就是字符串常量。在内存中所占的字节将会加一,如“abc”将以“abc\0”储存,\0只作为结束的标志。字符串常量要用字符数组来存放。
例:char c; //定义一个字符变量
c=’a’; //正确
c=”a”; //错误,c只能容纳一个字符
5、ASCII码:
0~31 控制字符,不可见字符
0,1,2,3……
A,B,C,D…….
a,b,c,d…….其中大小写相差32,即’A’+32=’a’
6、符号常量:
用一个符号名代表一个常量,称为符号常量。即以标识符形式出现的常量。
用预处理指令#define 指定一个名称为什么常量。虽然符号常量有名字,但并不是变量。在编译预处理时就已将所有的A替换为字符30。可使代码含义清楚且一改全改。
例:
#define A 30
Int main(){……}
即代表指定一个常量A,大小为30
七、变量:
在程序运行期间其值可以改变的量称为变量。都有一个名字且在内存中占据一定的储存空间,在该储存空间中存放该变量的值。其中变量名是指内存中的一个储存单元,在对编程编译连接时由系统给每个变量分配一个地址。在程序中从变量取值,实际上是通过变量名找到相应的内存单元
1、变量名规则:
标识符:用来标识变量、符号常量、函数、数组、类型等实体名字的有效字符序列称为标识符。即一个名字。
!、只能有字母、数字、下划线组成,
!!、第一个字符必须为字母或下划线
!!!、大写字母与小写字母是两个不同的字符
!V、变量名不能与关键字、系统函数名和类名相同
V、不能超过系统对标识符长度的规定
2、定义变量:一般形式:数据类型+变量名表列(有着一个或多个变量名的序列)
变量初始化:允许在定义变量时对它赋予一个初值,可以为常量,也可以为有确定值的表达式。若未对变量赋初值,则该变量是个不可预测的值,即该储存单元中当时的内容是不可知的。初始化不是在编译阶段完成的(除静态储存变量和外部变量外),而是在程序运行时执行本函数是赋予初值的,相当于执行一个赋值语句。
即语句:int a=3;
相当于两个语句:Int a;a=3;
3、常变量:
只是在变量的基础上加上一个限定:存储单元中的值不能发生变化。故又被称为只读变量。定义变量时加上关键字const,则变量的值在程序运行期间不能改变。
定义常变量时必须同时初始化,此后值不能再发生改变,不能出现在等号左边。
八、运算符
1、算术运算符:
+(加) -(减) *(乘) /(除) %(取余) ++(加一) --(减一)
2、关系运算符:
(大于) <(小于) ==(等于) >=(大于等于) <=(小于等于) !=(不等于)
3、逻辑运算符:
&&(与) ||(或) !(非)
4、位运算符:
<<(按位左移) >>(按位右移) &(按位与) |(按位或) ^(按位或) ~(按位取反)
5、赋值运算符:(=及其拓展运算符)
6、条件运算符:(?:)
7、逗号运算符:(,)
8、指针运算符:(*)
9、引用运算符和地址运算符:(&)
10、求字节数运算符:(sizeof)
11、强制类型转换运算符:((类型)或类型())
12、成员运算符:(.)
13、指向成员运算符:(->)
14、下标运算符:(【】)
15、其他(如函数调用运算符())
C++在运算时,有一个为float型数据,则运算结果为double型,在运算时所有的float型数据都按double型处理
九、算术运算符与算术表达式:
1、混合运算:
Char和short型数据必先转换为int,float型数据必先转换为double型。Int与double型运算应将int转换为double型,结果为double型。即转换为高级类型,并以高级类型结果输出。是系统自动进行的。
2、自增自减运算符:
++i(在使用i之前,先使i的值加一,再进行运算)
–i(在使用i之前,先使i的值减一,再进行运算)
i++(在使用i之后,先进行运算,再使i的值加一)
i–(在使用i之后,先进行运算,再使i的值减一)
3、强制类型转化运算符:
一般形式:(类型名)(表达式)或类型名(表达式)
例:(double)a为将a转化为double类型
(int)(x+y)为将x+y的值转换为整型
4、逗号运算符:
一般形式:表达式1,表达式2
求解过程:先求解表达式1,在求解表达式2,最后整个逗号表达式的结果是表达式2的值。拓展为表达式n后,是最后一个表达式的值。
5、算术运算符与算术表达式的优先级与结合性:6、赋值运算符中的类型转化:=即为赋值运算符,表示将一个数据赋给一个变量
!、将浮点型数据(包括单、双精度)赋给整型变量时,舍弃小数部分
!!、将整型数据赋给浮点型变量时,数值不变,但以指数形式储存到变量中
!!!、将一个double型赋给float型时,注意数值范围不能溢出
!V、字符型数据赋给整型变量,将字符的ASCII码赋给整型变量
V、将一个int、short、long赋给char变量,只将其低8位原封不动的发给char型变量(发生截断),得到某个字符的ASCII码,并最后以该字符输出
V!、将signed(有正负)型数据赋给长度相同的unsigned(无正负)型变量,将储存单元内同原样照搬(原有的符号位也作为数值一起传送)
总结就是一句话:按存储单元中的存储形式直接传送
7、复合赋值运算符:
在赋值符“=”之前加上其他运算符,赋值操作不只可以出现在赋值语句中,还可以以表达式的形式出现在其他语句中(如输出语句、循环语句)。注意以cout输出时要将赋值表达式用括号括起
+= -= *= /= %= <<= >>= &= ^= |=
表示先进行一次运算,再进行赋值:a+=b为a=a+b,其他同理