C++学习笔记

C++

第一课

iostream

iostream是C++的标准库,类似于C的stdio

using namespace std

using namespace std;中的using namespace代表使用命名空间,后面的std表示空间的名字叫std,而下面的cout就在命名空间std中被定义,下面的cout可以改成std:cout来使用

cout<<

cout为C++中的标准输出函数,类似与C的printf,使用语法为 cout<<"字符串"<<变量名<<表达式<<endl 其中的endl与"\n"的意思相同


第二课 变量与变量类型

定义变量的方法

变量类型 变量名1,变量名2,…,变量名n;
int a;
int a = 0,b;

变量的作用

储存数据

变量的命名规则

  1. 只能有字母,数字,下划线组成
  2. 第一个字符不能是数字
  3. 不能是C++已有的关键字
  4. 区分大小写

变量类型

  1. 整型 (整数)
    1. 短整型short 16bit 2byte -215~215-1
    2. 长整型long 32bit 4byte -231~231-1
    3. 超长整型long 64bit 8byte -263~263-1
    4. 无符号整型unsigned int 16bit 2byte 0~2^16-1
    5. 无符号短整型unsigned short 16bit 2byte 0~2^16-1
    6. 无符号长整形unsigned long 32bit 4byte 0~2^32-1
    7. 无符号超长整形unsigned long long 64bit 8byte 0~2^64-1
    8. 整型int 32bit 4byte -231~231-1
  2. 实型 (小数)
    1. float 6~7位
    2. double 15~16位
    3. long double 18~19位
  3. 布尔
    1. bool ture或false

类型转换

  1. 自动类型转换
    1. 由精度低向精度高
    2. 由右边的类型转换为左边的类型
    3. 隐性
  2. 强制类型转换
    1. 格式
      1. (类型名)(表达式)
      2. (类型名)变量
    2. 显性

cin>>

C++标准输入函数,类似C的scanf,使用语法:cin>>变量1>>变量2>>...>>变量n; 相邻的值用空格或换行隔开


第三课 选择判断结构

基本结构

if(表达式) 语句

if(表达式)
    语句1
else
    语句二

if结构需要注意

  1. 后面的语句没有{},就认为后面的第一条语句是if带的语句
  2. 后面用{}括了语句,整个{}的语句算作一条语句为if带的语句

关系运算符

  1. ‘==’ 等于
  2. ‘!=’ 不等于
  3. ‘>’ 大于
  4. ‘<’ 小于
  5. ‘>=’ 大于等于
  6. ‘<=’ 小于等于

关系表达式的值

是一个逻辑值,是真或假,为真则成立,为假则不成立
真为1,假为0
C++中 !0为真,0为假(即不是0就是真)

逻辑运算符

  1. &&逻辑与 两者同时为真才为真
  2. ||逻辑或 两者有一个为真就为真
  3. !逻辑非 真假值与原式相反

逻辑变量

bool

  1. 0 ==> false
  2. 1 ==> ture

switch case语句

switch(表达式)
{
    case 常量表达式1:[语句组1][...][语句组n]break;
    ...
    case 常量表达式n:[语句组1][...][语句组n]break;
    default:[语句组1]
}

第四课Scanf和printf标准输入输出

区别

scanf和printf可在C和C++中共用
scanf和printf的速度快,效率高

使用

包含cstdio库

printf

格式控制字符不是格式字符则原样输出
如果是格式字符则将其取代为后方输出列表表达式的值并输出

格式符

  1. %d 以十进制形式输出带符号整数 (正数不输出符号)
  2. %o 以八进制形式输出无符号整数 (不输出前缀O)
  3. %x或%X 以十六进制形式输出无符号整数 (不输出前缀0x)
  4. %u 以十进制形式输出无符号整数
  5. %f或%lf 以小数形式输出单、双精度实数
  6. %e或%E 以指数形式输出单、双精度实数
  7. %g或%G 以%f或%e中较短的输出宽度输出单、双精度实数
  8. %c 输出单个字符
  9. %s 输出字符串

数据类型和对应的格式控制符

  1. int %d
  2. long %ld
  3. long long %lld
  4. float %f
  5. double %lf
  6. long double %llf
  7. char %c
  8. 字符串 %s

附加格式说明符控制输出的小数位数

%n.mf
输出一个保留m位小数,输出宽度为n的float类型的数据

输出宽度(n):输出数据的小数位+1(小数点)+整数位数
如果输出结果不足n,全面补充0;如果输出超过n,n失效
可以省略n,直接用%.mf
也可以用于%lf %llf
没.m时,也可用于%d,%ld,%lld


第五课 赋值语句和数学表达式

格式

变量 赋值运算符 表达式
a += ba = a + b
c++支持连等,即a=b=3

自增和自减

只适用于整型或浮点型
自增:++
分为变量名++++变量名
区别:变量名++为先参与运算在自增
++变量名为先自增在参与运算
自减同理(–)

cmath

C语言的数学函数库

位运算

  1. ‘&’ 按位与 同为1,结果为1
  2. ‘|’ 按位或 有一个为1,结果就为1
  3. ‘^’ 按位异或 不同时为1,相同时为0
  4. ‘~’ 取反 按位取反,1为0,0为1
  5. ‘<<’ 左移 m << n 为把m按二进制左移n位,高位丢弃,低位补0
  6. ‘>>’ 右移 m >> n 为把m按二进制右移n位,低位丢弃,高位补0

第六课 for循环

基本结构

for(循环变量初始化;循环条件;循环条件增量)
    语句

功能

对于使循环条件成立的每一个循环变量的取值都执行一次循环体,直到条件不成立


第七课 while

基本格式

while(表达式)
    语句;

作用

当表达式非0时执行语句

死循环

当表达式永远非0时就陷入了死循环


第八课 do-while

基本格式

do
{
    语句;
}
while(表达式);

功能

先执行循环体在判断表达式,表达式为0时结束循环


第九课 循环中的break和continue语句

break

中断所在循环体,跳出循环
终止一个case分支,强制跳转到switch的结尾

continue

在循环中遇到continue,立马结束本次循环,进入下一次判断/循环


第十课 多重循环嵌套

即一层循环中有另一层循环(或多层)
不能出现内外循环交叉的情况


第十一课 一维数组

定义

类型名 数组名[元素个数]
元素个数必须是常量表达式或常数

数组下标

从0开始,不能越界
可以是任何值为整数的表达式,可以包含变量和函数调用

储存方式

占用连续一片内存单元

初始化

类型名 数组名[常量表达式]={值1,值2,...}


第十二课 字符数组(字符串)

定义格式

char 数组名[元素个数]

字符串中的每一个元素都可以当字符用

初始化

定义时对元素逐个赋值,也可以直接用字符串赋值

char 数组名[常量表达式] = {字符1,字符1,...};
char 数组名[常量表达式] = {"string"};
char 数组名[] = "string";

strlen计算字符串长度

strlen(*str)


第十三课 数值排序和查找

选择排序

第一次,从列表中选择一个最小的数放到第一个位置。
第二次,从第二个开始的列表中选择一个最小的数放到第二个位置。
不断从n个人的队列排序简化为n-1个人的队列排序。

冒泡排序

依次比较前后两个值的大小,如果后面打,那么交换。反之不变。
不断重复以上的过程,直到队列成为有序队列。

插入排序

在排序好的序列中,找到这个值正确的位置,然后插入。
并将其后的值后移一位


第十四课 数值查找和多维数组

二分查找算法

先对数据进行排序
设置low,high,mid三个指针
low <= high时,二分查找
求mid = (high + low) / 2
如果目标大于mid,low = mid + 1,继续二分
如果目标小于mid,high = mid + 1,继续二分
如果目标等于mid,返回查找结果

二维数组

数据类型 数组名[常量表达式1][常量表达式2];


第十五课 函数的定义与变量作用域

函数定义结构

返回类型 函数名(参数)
{
    函数体

    ...

    返回
}

函数的调用

函数名[参数列表]

变量的作用域

分为全局变量和局部变量
全局变量为定义后,到文件结束
局部变量为被定义的部分内有效,如函数体,循环体等

  • 30
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值