目录
一、程序的注释
1.单行注释 //
2.多行注释 /* */
3.多行注释快捷键 ctrl+k+c
取消多行注释快捷键 ctrl+k+u
二、常量和变量
1.常量
作用:用于记录程序中不可更改的数据
(1)#define 宏常量 (通常在文件上方定义)
语法:#define 常量名 常量值
示例:#define day 7
(2)const修饰的变量 (通常在变量定义前加关键字const,修饰该变量为常量)
语法:const 数据类型 常量名=常量值
示例:const int month = 12;
2.变量
作用:给一段指定的内存空间命名,方便操作这段内存
语法:数据类型 变量名=变量初始值
三、关键字
作用:C++中预先保留的单词,在定义变量或常量时候不要用关键字
如:asm auto bool break case catch char 等
四、标识符(变量、常量)命名规则
标识符不能是关键字
必须只能由字母、数字、下划线组成
第一个字符必须为字母或下划线
标识符中字母区分大小写
五、数据类型
存在意义:给变量分配合适的命名空间
1.sizeof关键字
作用:统计数据类型所占内存大小
语法:sizeof(数据类型/变量)
示例:sizeof(int)
2.整型
作用:用于表示整数
3.实型(浮点型)
作用:用于表示小数
分类:单精度float和双精度double
示例:float f1=3.14f; (小数默认为double类型,加f可直接表示float类型)
4.字符型
作用:用于显示单个字符 (C和C++中字符型变量只占用1个字节)
注意:字符型变量是将对应的ASCII码放入到存储单元(查看方法: cout<<(int)ch<<endl; )
语法:char ch='a';(单引号内只能有一个字符,不可以是字符串)
5.转义字符
作用:不能显示出来的ASCII字符
如:\\反斜线字符 \n换行 \t水平制表(8个空格;输出对齐)
6.字符串型
作用:用于表示一串字符
两种分格:(1)C风格:char 变量名[ ]="字符串值"
(2)C++风格:string 变量名="字符串值" (需包含头文件 #include<string>)
7.布尔类型
作用:代表真true或假false的值,占1个字节大小
示例:bool flag =true;
8.数据的输入
作用:用于从键盘获取数据
语法:cin>>变量;
示例:
int a=0;
cout<<"请给整型变量a赋值:"<<endl;
cin>>a;
cout<<"整型变量a="<<a<<endl;
六、运算符
作用:用于执行代码的运算
1.算术运算符
作用:用于处理四则运算
前置和后置区别:前置递增(先让变量+1,然后表达式运算)后置(先表达式运算,后变量+1)
2.赋值运算符
作用:用于将表达式的值赋给变量
3.比较运算符
作用:用于表达式的比较,并返回一个真值或假值
4.逻辑运算符
作用:用于根据表达式的值返回真值或假值
七、程序流程结构
1.选择结构
作用:依据条件是否满足,有选择的执行相应功能
(1)if语句
语法:
单行格式if语句:if(条件){条件满足执行的语句}
多行格式if语句:if(条件){条件满足执行的语句} else{条件不满足执行的语句}
多条件的if语句:if(条件1){执行的语1句}else if(条件2){执行的语句2}... else{都不满足执行的语句}
嵌套if语句:if(条件){if(条件1){} else if(条件2){}} else{}
(2)三目运算符
语法:表达式1?表达式2:表达式3 (表达式1为真 执行2、为假 执行3)
注意:C++中三目运算符返回的是变量,可以继续赋值
(3)switch语句(只能判断整型或字符型)
语法:switch(表达式){case 结果1:执行语句;break; ... default:执行语句;break;}
2.循环结构
(1)while语句
语法:while(){循环语句}
(2)do...while语句
语法:do{循环语句}while(); 先执行一次循环语句,再判断循环条件
(3)for循环语句
语法:for(起始表达式;条件表达式;末尾循环体){循环语句}
3.跳转语句
(1)break
switch:终止case并跳出switch
循环:跳出当前的循环语句
嵌套循环:跳出最近的内层循环
(2)continue
循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下次循环。
(可以用于筛选条件,执行到此就不再向下执行,执行下一次循环)
(3)goto
作用:无条件跳转语句,如果标记的名称存在,执行到goto语句时,会跳转到标记的位置。
语法:goto 标记;
八、数组
1.概述
所谓数组,就是一个集合,里面存放了相同类型的数据元素。
特点1:数组中的每个数据元素都是相同的数据类型
特点2:数组是由连续的内存位置组成的
2.一维数组
(1)定义方式:
数据类型 数组名[数组长度];
数据类型 数组名[数组长度]={值1,值2,...};
数据类型 数组名[ ]={值1,值2,...};
(2)数组元素访问:下标(从0开始索引)
(3)一维数组名称的用途:
a.可以统计整个数组在内存中的长度:sizeof(arr) (数组名为:arr)
每个元素所占的内存空间:sizeof(arr[0])
数组中元素个数为:sizeof(arr) /sizeof(arr[0])
b.可以获取数组在内存中的首地址:cout<<(int)arr<<endl;(加int:转换为十进制形式查看)
第一个元素的地址:cout<<(int)&arr[0]<<endl;(元素要加取址符)
(4)数组名是常量,不可进行赋值操作
3.二维数组
(1)定义方式:
数据类型 数组名[行数][列数];
数据类型 数组名[行数][列数]={{值1,值2},{ }...};
数据类型 数组名[行数][列数]={值1,值2,...};
数据类型 数组名[ ][列数]={值1,值2,...};
(2)数组元素访问:下标(第一个元素:arr[0][0])
(3)一维数组名称的用途:
a.可以统计整个数组在内存中的长度:sizeof(arr) (数组名为:arr)
第一行所占的内存空间:sizeof(arr[0])
每个元素所占的内存空间:sizeof(arr[0][0])
二维数组行数:sizeof(arr) /sizeof(arr[0])
二维数组列数:sizeof(arr[0]) /sizeof(arr[0][0])
b.可以获取数组在内存中的首地址:cout<<(int)arr<<endl;
第一行首地址:cout<<(int)arr[0]<<endl;
第一个元素的地址:cout<<(int)&arr[0][0]<<endl;
九、其他
1.随机数
语法:
#include <ctime> //time系统时间头文件
srand( (unsigned int) time (NULL) ); //添加随机数种子, 利用当前系统时间生成随机数,防止每次随机数都一样
int num = rand() % 100 +1; //rand()%100 +1生成 0~99 +1 随机数