1基础语法
1.1注释
作用:在代码中加一些说明注释
1.单行注释: //描述信息(代码含义)
2.多行注释:/描述信息(可含多行注释)/
1.2 变量和常量
- 变量
变量按作用域可分为“局部变量”和“全局变量”;方便管理。
变量创建语法:数据类型 变量名 = 变量初始值
常见变量:bool char int float double void
tips:
左值(lvalue):指向内存位置的表达式被称为左值(lvalue)表达式。左值可以出现在赋值号的左边或右边。
右值(rvalue):术语右值(rvalue)指的是存储在内存中某些地址的数值。右值是不能对其进行赋值的表达式,也就是说,右值可以出现在赋值号的右边,但不能出现在赋值号的左边。
2 常量
记录程序中不可更改的数据。
两种定义常量的方式:
#define 宏常量#define 常量名 常量值
;
const const 数据类型 常量名 = 常量值:
(作为右值使用)
1.3关键字
关键字即为标识符是事先定义的,C++ 有22+10+11+20 = 63 个关键字
tips:
变量名命名时不可使用这些关键字;
1.4标识符命名规则
识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。
标识符不可以是关键字,标识符只能由数字、字母、下划线组成,第一个标识符只能是字母或下划线,标识符区分大小写。
2数据类型
2.1整型
| short | 2字节 | -215~ ~215 -1 |
|int | 4字节 | -231~ ~231 -1 |
| long | 2字节 | windows 4字节,Linux为4字节(32位),8字节(64位) -215~ ~215 -1 |
| long long | 8字节 | -263~ ~263 -1 |
意义:给变量分配合适的内存空间
2.2size of 关键字
统计数据类型所占内存大小;sizeof(数据类型/变量名)
2.3实型(浮点型)
用于表示小数;默认情况都只显示两位
|float单精度|4字节|7位有效数字|
|double双精度|8字节|15~16位位有效数字|
flaot 变量名 = 数据f
float 变量名 = 数据e数
//科学计数法
2.4 字符型
字符变量用于显示单个字符char ch = 'a'
tips:
c和c++中字符型变量只占一个字节;
字符型变量并不是把字符本身放到内存存储中,而是把ASCII编码放入到存储单元。a-97,A-65
单引号内只能有一个字符
2.5转义字符
用来表示不能显示的ASCII字符
转义字符
意义
ASCII码值(十进制)
\a 响铃(BEL) 007
\b退格(BS) ,将当前位置移到前一列008
\f换页(FF),将当前位置移到下页开头 012
\n换行(LF) ,将当前位置移到下一行开头010
\r回车(CR) ,将当前位置移到本行开头013
\t水平制表(HT) (跳到下一个TAB位置)009
\v垂直制表(VT)011
\代表一个反斜线字符’’’ 092
’ 代表一个单引号(撇号)字符 039
" 代表一个双引号字符034
?代表一个问号063
\0空字符(NUL)000
\ddd1到3位八进制数所代表的任意字符三位八进制
\xhh十六进制所代表的任意字符十六进制
2.6 字符串型
c: char 变量名 [] = “字符串值”
c++ string 变量名 = “字符串值”
2.7bool类型
true false
2.7bool类型
3运算符
3.1算术运算符
+、-、*、/,+,-,%,++,–
3.2赋值运算符
=; +=;-=;/=;*=;%=
3.3比较运算符
==;<=;>=;!=;<;>
3.4逻辑运算符
返回真或假;
&&与;; ||或; ;!非
c++中除了0都是真;
4程序流程结构
顺序结构;选择结构;循环结构;
4.1选择结构
4.1.1 if语句
-
单行格式if语句:
if(条件){条件满足的语句}
-
多行
if(条件){条件满足语句}else{条件不满足语句}
; -
多条件结构
if(){} else if(){} ……else{}
-
嵌套if语句:if语句中还有if语句增加准确性
4.1.2 三目运算符
表达式1?表达式2:表达式3
表达式1为真则执行表达式2;若表达式为假则执行表达式3
4.1.3 switch语句
作用:执行多条件分支语句
语法:switch(表达式) { case 结果1 :执行语句 ;break; case 结果2:执行语句;break; default:执行语句;break; }
4.2循环结构
4.2.1while语句
while(循环条件){循环语句}
4.2.2 do while语句
do{循环语句}while(循环条件);
先执行一次循环语句,在判断循环条件
4.2.3 for 循环语句
for(起始表达式;条件表达式;末尾循环体){循环语句;}
4.2.4 嵌套循环
4.3 跳转语句
4.3.1break语句
break会退出循环continue不会
4.3.2continue语句
在循环语句中,跳过本次循环中尚未执行的语句,继续执行下一次循环
4.3.3goto语句
go to FLAG;
FLAG :
5 数组
数据类型 数据名[数组长度];
数据类型 数据名[数组长度]={值1,值2,...}
数据类型 数组名[]={值1 ,值2...}
数组下标从0 开始
一维数组名可以统计整个数组在内存中的长度sizeof(数组名);可以获取数组在内存中的首地址cout<<数组名<<endl;
数组长度:sizeof(a)/sizeof(a[0])-1
二维数组
1数据类型 数组名[行数][列数];
2数据类型 数组名[行数][列数]={{a,b},{c,d}}
3数据类型 数组名[行数][列数]={a,b,c,d...};
4数据类型 数组名[][列数]={a,b,c,d...};
6 函数
封装减少重复;
返回值类型 函数名 (参数列表)
{
函数体语句;
return 表达式;
}
若函数在main函数后需要在main函数前声明;main函数中的为实际参数,当调用函数时,实参的值会传递给形式参。
若函数 不需要返回值,返回值类型可以写void;
值传递:实参传递给形参;形参改变不会影响实参。
函数的分文件编写
//创建后缀为.h的头文件;创建后缀名为.cpp的源文件;在头文件中写函数声明;在源文件中写函数定义
7指针
7.1指针变量定义数据类型 *变量名
取址:&变量名;
指针就是地址;
解引用:变量名————读取指针指向内存中的东西。
指针所占内存:sizeof(数据类型 *)
7.2 空指针
指针变量指向内存中编号为0的空间;用途:初始化指针变量;空指针指向的内存是不可以访问的;
int *p = NULL;
7.3野指针
指针变量指向方法空间
7.4 const修饰指针
- const修饰指针—常量指针(指针指向可以修改,但是指针指向的值不可以改)
const int *p = &a
- const修饰常量—指针常量(指针指向不可以改,但是指针指向的值可以改)
int *const p = &a
- const既修饰指针又修饰常量(都不可以改)
const *int *const a
7.5 指针和数组
7.6 指针和函数
地址传递:传入时加&,定义时加*
改变实参
8 结构体
8.1结构体初识
用户自定义的数据类型;
struct 结构体名 {数据类型 变量名1;数据类型 变量名2;数据类型 变量名3;...}
结构体赋值:结构体名.变量名 = 变量值
8.2 结构体数组
创建按结构体数组前先定义结构体
struct结构体名 数组名[元素个数] = {{},{},{},{},{}}
8.3 结构体指针
->