(二)基本内置类型

char类型是无符号还是有符号由编译器决定,所以应该明确指定类型为 signed char 或 unsigned char

float和double计算代价相差无几,有些时候double比float还快,所以应该优先使用double

表达式中既有带符号类型又有无符号类型时,带符号类型会自动转换成无符号类型,有可能出现不期望值,一定要注意,无符号类型很危险


统一列表初始化

int units_sold{0};


声明变量

extern int i; 如果给i赋初始值,则抵消extern,语句变成定义


变量定义规则:

int i = 1024; *p = &i; &r = i;
//同时定义int变量,指针,引用
int i = 42;
int *p;
int *&r = p;//引用指针,r为p的别名,可互等.阅读从距离变量最近的位置开始读含义,即r首先是个引用,引用的为指针


Const 变量本质上还是一个变量,Const是通知编译器此变量不可更改,可强行转换告诉编译器可更改其值,如果实际中没有更改其值,编译器为了优化会硬编码值替换对应变量.


Const 对象默认被设定为仅在文件内有效,即多个文件中出现了同名的const变量,等同于在不同文件中分别定义了独立的变量,解决办法是不管声明还是定义都添加extern   

extern const int bufsize = fcn();//定义
.h
extern const int bufsize;//声明

const引用可绑定到 一个能转换成对应引用的表达式,本质上是绑定到了一个临时变量上

double dv = 10.5;
const int &r1 = 10;
const int &r2 = dv;

// int Temp = dv;
// int &r2 = Temp

//即修改引用不会改变本来的值,因为绑定在临时变量上
const double *cptr = π//指向常量的指针
double * const pip = π//常量指针


constexpr 常量表达式类型, 验证值不会改变并且在编译过程就能得到计算结果.


类型别名

typedef double wages;

using SI = Some_Class;


auto 根据赋初值自动推算变量类型,如果多个变量在一条语句中,则基本类型相同.

decltype 编译器分析表达式并得到它的类型,由于是在编译器时期,所以不会计算表达式的值

引用从来都作为其所指对象的同义词出现,只有用在decltype处是一个例外

decltype如果操作一个变量,则类型为变量的类型,如果是一个表达式,表达式是左值,则结果为值类型引用,如果为右值,则结果为对应值得类型.


预处理,程序员应该习惯加上头文件保护,没必要在乎你的程序到底需要与否


头文件一般不应该使用using 声明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值