C/C++基础整理

一、 数据类型和存储

1.数据类型

数据类型字节数范围
char1-128 ~ 127
short2-2^15 ~ 2^15-1(-32768 ~ 32767)
int4-2^31 ~ 2^31-1(21.47亿 ~ 21.47亿)
long4/8 
float4小数点后6位,-3.4e38 ~ 3.4e38
double8小数点后15位,-1.7e308 ~ 1.7e308
unsigned char10 ~  255
unsigned short20 ~ 2^16-1(0 ~ 65535)
unsigned int40 ~ 42.9亿
unsigned long4/8 
指针4/8 

2.类型转换

2.1隐式转换

小类型向大类型转换,同类型有符号向无符号转换

2.2显示转换

static_cast<类型>():静态转换(强转)

dynamic_cast<类型>():动态转换,用于将父类强转为子类

const_cast<类型>():去常转换

reinterpret_cast<类型>():重解释转换(基本不用)

3.进制转换

3.1十进制转换为其他进制

例:十进制转二进制,将10转换为二进制

10/2 = 5 余 0

5/2 = 2 余 1

2/2 = 1 余 0

1/2 = 0 余 1

转换后结果为 1010

3.2其他进制转换为十进制

例:二进制转为十进制,将 1111转换为十进制

1*2^0+1*2^1+1*2^2+1*2^3 = 1+2+4+8 = 15

4.原码反码补码

4.1正数

原码 = 反码 = 补码

4.2负数

原码不算符号位各位取反 = 反码

反码加一 = 补码

5.大端存储小端存储

由于计算机物理地址从低到高

低地址存低字节为小端存储

低地址存高字节为大端存储

6.运算符优先级

1[] () . ->从左到右前导运算符
2- (type)++ -- * & ! ~ sizeof从右到左单目运算符
3* / %从左到右双目运算符(算术)
4+ -从左到右双目运算符(算术)
5<< >>从左到右双目运算符(位移)
6> >= < <=从左到右双目运算符(大小关系)
7== !=从左到右双目运算符(大小关系)
8&从左到右双目运算符(位逻辑)
9^从左到右双目运算符(位逻辑)
10|从左到右双目运算符(位逻辑)
11&&从左到右双目运算符(逻辑)
12||从左到右双目运算符(逻辑)
13?:从右到左三目运算符
14= /= *= %= += -= <<= >>= &= ^= |=从右到左赋值运算符
15,从左到右逗号表达式

 

二、流程结构

1.if else

2.switch(整型或整型表达式) case 整型常量或表达式

三、字符串

例:char str1[10] = "abcd"  str1是常量 ,其内容在栈区可读写                    ,sizeof(str1)=10,strlen(str1)=4

        char* str2 = "abcd"        str2是变量,其指向的内容在字符常量区只读,sizeof(str2)=5  ,strlen(str2)=4

四、结构体与联合体(考察对齐方式)

4.1结构体

struct Node
{
    int a;
    char b[5];
};

sizeof(Node)=12 把char b[5]看作五个char,四字节对齐

4.2联合体

union u
{
    int a;
    char b[5];
};

sizeof(u)=8 四字节对齐

五、文件

r:只读,文件必须存在b:二进制+默认从头写,写时覆盖
w:只写,文件存在则清空,不存在则新建b:二进制+读写,打开文件清空
a:添加只写,文件存在则在尾部添加,不存在新建b:二进制+读写,在尾部追加

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值