C++++
字符串类型
用于表示一串字符串
两种风格
布尔数据类型
布尔数据类型只有两个值,true---真(本质是1)
False--假(本质是0)
只占一个字节
数据的输入和输出
关键字:cin
语法:cin>>变量
算数运算符
取余%
10%3=1
a++和++a
b=a++//a先赋值再加一
b=++a//a先加一再赋值
选择
if(){
}else if(){
}else{
}
三目运算符
表达式1?表达式2:表达式3
表达式为真?执行表达式2否则执行表达式3
Int a=10;
Int b=20;
Int c=0;
c=(a>b?a:b)
输出c=20
在C++中三目运算符返回的是变量,可以继续赋值
(a>b?a:b)=100
输出b=100
Switch
执行多条件的分支结构
Switch(){
Case 结果1:执行语句;break;
Case 结果2:执行语句;break;
.
.
Default:执行语句;break;
}
循环结构
满足循环结构,执行循环语句
While(循环条件){
循环语句
}
Do…while
满足循环条件,先判断循环语句
Do{循环语句}while{循环条件};
For循环语句
For(其实表达式;条件表达式;末尾循环体){
循环语句;
}
Goto 标记:
标记:
飞雷神语句
数组
就是一个集合,里面存放了相同数据类型的元素(每个元素都是相同数据类型,连续的内存地址组成)
1.数据类型 数组名[数组长度];int score[10];
2.数据类型 数组名[数组长度]={值1,值2…..};//如果初始化数据没有全部填满,计算机会用0来填满
3.数据类型 数组名[]={值1,值2…..};
下标从0开始
一维数组数组名用途
统计整个数组在内存中的长度,
获取数组在内存中的首地址
Int arr[5]={1,2,3,4,5}
Sizeo(arr)//统计数组长度
Sizef(arr[0]}//获取一个元素占地址空间//两数相除可以得到数组个数
冒泡排序
最常用的排序算法,对数组内的元素进行排序
原理:比较两个相邻的元素,如果第一个比第二个大,就交换他们两个
对每一对相邻元素做相同工作,执行完毕后,找到第一个最大值
重复以上步骤,每次比较次数减一,直到不需要比较
二维数组z:
数据类型 数组名[行数][列数];
数据类型 数组名[行数][列数]={{数据1,数据2},{数据3,数据4}};
数据类型 数组名[行数][列数]={数据1,数据2,数据3,数据4};
数据类型 数组名[][列数]={数据1,数据2,数据3,数据4};
二维数组组名:
查看二维数组所占内存空间
获取二维数组地址
二维数组应用
函数
将一段经常使用的代码封装起来,减少代码重复,一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能
步骤
1、返回值类型
2、函数名
3、参数列表
4、函数体语句
5、return表达式
创建和调用函数:
值传递
函数调用时,实参将数值传递给形参
如果形参发生改变,实参不变
函数的分文件编写
指针
可以通过指针来访问内存
Int *p;
p为地址,*p修改p指向那个地址的值
指针所占的内存空间
在32位操作系统下,指针占4个字节大小,不管什么类型
在64位操作系统下,指针占8个字节
空指针和野指针
指针变量指向内存中编号为0的空间
初始化指针变量
空指针指向的内存是不可以访问的
野指针,指针变量指向非法的内存空间
空指针和野指针都不是我们申请的空间,因此不要访问
const修饰指针
1、const修饰指针-----常量指针
Const int *p=&a;指针的指向可以修改,但是指针指向的值不可以修改
2、const修饰常量-----指针常量
Int *const p=&a;指针指向不可以改,但是指针指向的值可以改
3、const即修饰指针又修饰常量
Const int * const p;指针的指向和指针指向的值都不可以改
指针和数组
利用指针访问数组元素
指针和函数
指针作为函数参数,可以修改实参的值
指针数组和函数
结构体
结构体属于用户自定义的数据类型,允许用户存储不通的数据类型
定义和使用:struct 结构体名{结构体成员列表};
1、struct 结构体名 变量名
2、struct 结构体名 变量名={成员1值,成员2值…….}
3、定义结构体时,顺便创建变量
4、创建变量的时候可以不写关键字struct
5、利用.来访问变量的数据
结构体数组
将自定义的结构体放入到数组中方便维护
语法:struct 结构体名 数组名[元素个数]={{},{},{}…….{}}
结构体指针
通过指针来访问结构体中成员
利用->操作符可以通过结构体指针访问结构体属性
结构体嵌套结构体
结构体的成员可以是另一个结构体
结构体做函数参数
将结构体作为参数向结构体当中传递
值传递,地址传递(可以改变结构体里面的值)
结构体const使用场景
用const来防止误操作,防止我们修改
结构体案例
三位老师,一位老师带五位学生,打印所有老师和学生数据
结构体内部数据排序升序
要注意的点就是比完年龄之后也还是定义一个结构体去接收
到这里就是走出新手村,开始面向对象了