c++自我学习.2

c++自我学习.2

1.控制结构

选择结构

if   if..else..  switch

循环结构

for  while  do while

其他结构

break

continue

技巧:

1.连续转离散

2.case循环

3.基于范围的for循环

for(int &v:vec)

v*=2;

每次迭代,对v的操作直接操作在vec上,vs=是vec的别名

2.格式化               操纵符

域宽                   setw()

小数点个数             fixed+setprecision()

内容填充               cout.fill( )

显化小数点             showpoint

科学计数法             scientific

进制转化               dec 10  hex 16  oct 8

显化基数               showbase

对齐                   left  right

布尔转化               1 》true   0 》false

补充:

若不进行浮点数据精度格式化,只显示六位有效数字

cout.flags( )设置和重置格式状态

3.变量:

名字(标识符组成),类型,值,地址(指针),存储期,作用域

补:标识符

组成:英文小写字母,数字,下划线

规则:不能以数字开头,不能是关键字,严格区分大小写

补充:

小数点转二进制:

0.625*2=1.25取1

0.25*2=0.5取0

0.5*2=1取1

从上往下读101,前面再加个0最后0.625转成二进制就是0.101

补码,反码

int a=13;

取反,获得反码

再+1得补码

补码就等于 - 13

IEEE规范

十进制带有小数点的数先转二进制正负为第一部分存放在符号位,尾数为第二部分存放在尾数位,指数存放在指数位

例:120.5=1.205E+2

转成二进制数1110110.1=1.1101101E+6

1110110.1=1.1101101*E+6,画红的这部分直接存储到23位中

若不23位后面直接补0,补到23位为止,如1101101000000000000000000.....

底层:

0/1  +  ???????? + 【】【】【】【】【】【】【】【】【】【】【】【】【】.......

浮点类型空间分配

float=1+8+23

double=1+11+52

1符号位

8指数位阶码

00000000=-127,10000000=1,11111111=128这里需要指数转为二进制码

23尾数,按源码储存

精度

float 7位

double16位

布尔(bool)

布尔表达式:

结果只有true(真)和false(假)两个取值。

补:

逻辑操作符即结果为布尔类型的表达式,一般和关系运算符组成较复杂的表达式,其他类型也可以作为操作数,最终转化为bool类型

枚举类型

一个变量只有几个值,则可以定义为枚举类型(bool其实也是一个枚举类型,只有0和1。)

声明

enum Weekday{ sum=1 , mon=2 , tue=3 , wes=4 , thur , fri , sa }元素叫枚举常量

注意:

只能在声明的时候赋值,在后面使用中不能赋值

weekday x=sum

sum=1,错误

限定:class

enum class status : unsigned int {     };

程序员还可以隐性的指定枚举类型的所隐含的整数类型,

MyEnum myEnum = MyEnum :: P2; 避免歧义

enum class Enum1{

    P1 = 1,

    P2 = 2

};

enum class Enum2{

    P1 = 10,

    P2 = 11

};

两个枚举,里面的元素名字一样,但是如果还是执行

Enum1  myEnum = P2 的话,会出现歧义

补充

作用域内枚举不能直接通过cout输出,可以转化为int

cout << int( myEnum ) << endl;

      

4.函数调用堆栈:

栈:

在计算机系统中,栈被定义为一个特殊的容器,用户可以将数据压入栈中,也可以将已经压栈的数据出栈;压栈操作使得栈增大,出栈使得栈减小;栈总是自下增长的,栈顶由称为esp的寄存器进行定位,压栈操作使得栈顶的地址减小,出栈的操使栈顶地址增大

作用

栈保存了一个函数调用所需要的维护信息,这常常被称为堆栈帧

堆栈帧的一般包括:

函数的返回地址和参数;

临时变量:包括函数的非静态局部变量以及编译器自动生成的其他临时变量;

保存的上下文:包括在函数调用前后需要保持不变的寄存器;

自动变量与堆栈结构:当被调函数返回调用者时,被调函数的自动变量应当被销毁,也就从堆栈结构中弹出

  1. 内联函数

函数定义处增加inline

原理:

省去调用的时空开销,直接在调用处嵌入函数体,需要拷贝代码

6.一元作用分辨运算符:

1.在同名的局部变量的作用域内可以访问同名全局变量

2.不能访问外层语句块中的同名局部变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成也萧何,败也萧何

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值