C++笔记--类型和声明
2016-05-23 20:12
204 查看
布尔量
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中不同的值
整数型
[2].png]
浮点型
大
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类型
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中不同的值
整数型
[2].png]
浮点型
大
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类型
相关文章推荐
- C++中skipws、ws两者有什么区别
- C++读写文件
- leetcode 141 Linked List Cycle C++
- 关于《飞机游戏软件:C语言应用初步感受》的感想
- C++const总结
- C语言学习之旅
- C++中的struct与class继承方式
- 如何快速又正确地在C++里实现锁
- inline用法详解
- leetcode 70 Climbing Stairs C++
- 交换两个数
- 开始学习C++
- C++作业6
- C++ 标准函数库 —— 文件的输入输出 (Input/Output with files)
- C++ 高级篇(五)—— 预处理指令
- C++ 停止并禁用服务
- C++ 高级篇(四)—— 类型转换高级
- C++ 高级篇(三)—— 出错处理
- 基于arm的C++反汇编 函数的工作原理
- c++数组实现循环队列