未经本人授权,禁止转载
大家好,这里是凛刃。C++是一门非常繁杂的语言,每一遍学习的过程总有新收获,但是总有些小地方很重要却又容易忽视,不常用导致经常忘记,那么这个板块就是记录下这些令人抓狂的“小地方”,希望在提醒自己的同时也能帮到需要的人。
1. 名称空间
using namespace
- 大型项目可能会有相同名称的模块,给不同的模块起不同的名称空间需要的时候使用using可以很好的解决这个问题
- 注意最好不要在全局使用using,可能会减缓程序运行速度,达不到预期的目标
2. 运算符sizeof
在8位字节的系统中,int的长度是4个字节也就是32位,可以表示0~2147483647的大小,sizeof可以指出占多少个字节。
- 对类型名int,用法为sizeof (int)
- 对变量名,用法为sizeof (var)或者sizeof var
3. 头文件limits.h/climits
头文件limits定义了各种符号常量的属性。
- INT_MAX表示int的最大值,INT_MIN表示int的最小值,UINT_MAX表示unsigned int的最大值
等等以此类推,具体请查阅书籍。
4. 变量的初始化
- C传统方式:int counter = 0;
- C++特有方式:int counter(0);
- C++11特有方式:int counter = {0}; //这种方式可以防止一些错误
5. char型详解
char字符类型本质上是比short更短的整型,它的大小只有一个字节也就是8位,所以只能存储-128~127或0~255大小的变量。
char str = 'M'; //字面上str存储的是M,在计算机内部则是ASCII码77的二进制
int x = str; //x被赋值为M的编码77
str = str + 1; //str变为编码为78的N
x = x + 1; //x的值变为78
cout<<'M'; //输出的是M的编码77
cout.put('M') //输出的是字母M,cout.put()是一个输出用法
6. bool型详解
bool型只能是两种值:true或者false,但是它可以和int型互相强制转换。
bool start = -99; //只要不是0,start会被强制赋值为true
bool stop = 0; //为0时stop被强制赋值为false
int x = true; //x强制赋值为1
int y = false; //y强制赋值为0
7. const限定符
创建常量的通用格式:const type name = Value;,这样常量name不再允许在程序中被修改。C++的const是比C的#define(尽管C++依旧支持)更加好用且稳定的常量定义方法,因为他的作用范围更加灵活,常量类型更加丰富多变。
const int Months = 12; //后续的所有Months都代表12
//同样,const可以用于数组、结构体等等
8. 浮点数详解
浮点数型与整型有着本质的区别,在内部存储是以基准值0.12345和缩放因子100两部分组成的,所以0.12345和100就表示12.345,程序员只需要知道他可以表示非常大和非常小的数就可以了。
//C++的两种书写形式
12.34 8.0 0.00345
//或者
2.52e+8 1.23E+4 1234.12E-6
//e或E表示倍数,正负数字表示10的正负多少次方
9. 强制转换
- 传统方法:(typename)variate
- C++新方法:typename(variate) 或者 static_cast<typename> (variate),新方法的出现是因为传统方法有过多的可能性而存在危险
10. C++11的auto声明
auto variate = value,auto会根据value的类型自动判断variate的类型。
网友评论