- 布尔量
- Eg: bool b1=a==b;//这个例子中,=是赋值,==是判断是否相等,所以先是判断是否相等,a如果等于b,b1的值就是true,否则就是false了
- Bool经常被用作检查某些条件是否成立的函数的结果类型,
- Eg:bool greater(int a,int b) {return a>b}
- Bool可以和整数进行隐式的转换(任何非零的整数都是true,零为false)
- eg:bool a=ture;
- bool b=true;
- bool x=a+b;//因为a+b=2 为true,所以x也是tru
- Bool y=a|b;//a/b=1,所以y为true
- 字符型
- 一个char类型包含8位二进制位数,可以保存256中不同的值
- 整数型
- 浮点型
- 大
- sizeof(char)= 1
- sizeof(short)= 2
- sizeof(float)= 2
- sizeof(int)= 4
- sizeof(double)= 8
- sizeof(void*)= 4
- sizeof(long)= 4
- sizeof(LONGLONG) = 8
- sizeof(bool)=
- sizeof(wchar_t) = 2
- Void
- 用于刻画一个没有返回值得函数 void f();
- 用作指向不明类型的对象的指针的基础类型 ,这个指针允许被强制转换为任意类型的指针 void * pv;
- 一个特殊的例子:
- Char类型的指针:
- char c='V';
- cout<<c<<endl;
- cout<<&c<<endl;//char类型的数据,输出地址是不能用&符号的
- cout<<(void *)c<<endl;//可以利用(void*)指针进行输出,当然也是可以强制转换成别的类型的指针
- cout<<(double *)c<<endl
- return 0;
- 枚举
- 声明
- 除了函数和命名空间外,其他声明都应该以分号结束
- 声明的名字
- 名字最好取得比较规范,让人容易看懂。Eg:current_token
- 名字的作用域:
- 一般是从名字声明开始的地方开始到这个作用块结束的地方成为名字的作用域
- 如果出现全局变量和局部变量都是一样的名字的话,在局部的地方会遮蔽掉全局变量,如果还想要调用全局变量的话,可以通过作用域解析运算符::进行调用。
- 声明的初始化
- 如果没有初始化:全局的,名字空间的,局部静态的对象会初始化为对应的0
- 但是局部对象和动态对象不会初始化;
- 例如:
- Int main(){
- Int x;//这里就是动态的变量,没有进行初始
- }
- Typedef
- 可以将一个名字变为另一个名字:typedef unsign char uchar;//将名字较长的unsign char变为了uchar类型