1、【C++基础】bool数据类型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、【C++基础】bool数据类型
C++ 简介
C++ 是⼀种静态类型的、编译式的、通⽤的、⼤⼩写敏感的、不规则的编程语⾔,⽀持过程化编程、⾯向对象编程和泛型编程。
C++ 被认为是⼀种中级语⾔,它综合了⾼级语⾔和低级语⾔的特点。
C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利⼭贝尔实验室开始设计开发的。
C++ 进⼀步扩充和完善了 C 语⾔,最初命名为带类的C,后来在 1983 年更名为 C++。
C++ 是 C 的⼀个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。
注意:使⽤静态类型的编程语⾔是在编译时执⾏类型检查,⽽不是在运⾏时执⾏类型检查。
⾯向对象程序设计
C++ 完全⽀持⾯向对象的程序设计,包括⾯向对象开发的四⼤特性:
封装
抽象
继承
多态
标准库
标准的 C++ 由三个重要部分组成:
核⼼语⾔,提供了所有构件块,包括变量、数据类型和常量,等等。
C++ 标准库,提供了⼤量的函数,⽤于操作⽂件、字符串等。
标准模板库(STL),提供了⼤量的⽅法,⽤于操作数据结构等。
C和C++的联系
C++ 是在C语⾔的基础上扩展的,C语⾔的很多语法在 C++ 中依然⼴泛使⽤,例如:
C++ 仍然使⽤ char、short、int、long、float、double 等基本数据类型;
C++ 仍然使⽤ if...else、while、for、switch、break 等分⽀或循环结构;
C++ 仍然使⽤ +、-、*、/、%、++、--、<<、>> 等运算符;
C++ 仍然使⽤ typedef、#define、enum、struct 等;
C++ 仍然使⽤C语⾔中经典的指针(Pointer),并且使⽤范围有增⽆减,甚⾄不可或缺。
C++与C不兼容之处
C的⼤部分代码在C++上都能应⽤,⽽C++的代码在C上不能应⽤。
(记住是⼤部分,不是所有)
C++是C语⾔的超集,虽然C++兼容C,但是C++中也有与C语⾔中不兼容的地⽅。
1、变量声明的位置
C中变量声明和代码是分开的,必须在函数开始处声明;
C++中,变量可以在任意处声明,只要保证先声名后使⽤的原则就可以。
2、struct结构体⽅⾯
⽤struct定义变量
struct mystruct{ int i;float x};
在c中声明struct变量要这么写:struct mystruct a;
在C++中前⾯不⽤加struct:mystruct a;
⼀种兼容的⽤法是:
typedef struct _mystruct{int i;float x;} mystruct;
然后⽤mystruct 定义变量。
枚举型(enum),联合体类型(union)也是同样。
在C++中,struct结构体⽀持成员函数的定义,C中不⾏。
另外要注意的是,C++中成员函数的默认访问说明符为public,这⼀点和类不同,类的默认访问说明符为private.
3、bool类型值
C++中有bool(或boolean类型);C中可没有这样的bool类型,均为数值类型!需要注意的是真为⾮零(如:1,52,-5,-2等),假的数值为0。
4、赋值
C语⾔中的赋值只有⼀中即:=;
C++中除了使⽤=外,还可以使⽤()。
例如:int x(5);就等于: int x=5;我想这种写法是给C++中对象初始化时初始化属性是对象时使⽤的,那么对于基本类型也可以使⽤了。
5、函数
C语⾔中函数没有参数默认值,在C++中函数有参数默认值的概念,注意参数默认值与函数重载的区别。
C语⾔中函数的定义⼜两种形式,经典形式和标准形式,C++中只⽀持标准形式。
标准形式:int string(int x,float y){......}
经典形式: int string(x,y)int x;float y;{......}
C++的函数必须先声名原型或定义才能使⽤,因为C++是强数据类型语⾔,在C语⾔中,未声名和定义函数之前调⽤函数是允许的.
6、运算符&和关键字const
&运算符最基本的含义是取地址,C和C++中都⽀持这⼀语法。
但在C++中&还可以表⽰引⽤。
有了引⽤的概念后函数调⽤可以作为左值。
例如:
int &rtux()......rtux()=5;
以上表达式在C++中完全正确,但在C语⾔中是⾮法的。
const关键字要注意⼀点不同的就是在C++的类函数中,函数可以声名是可以⽤const,表⽰这个函数没有改变类中的任何属性。
如:void unchange()const;C不能有这样的⽣明。
7、extern说明符
在C语⾔的某些版本中,可以在程序中多次使⽤⼀个全局变量⽽⽆需使⽤extern说明符。
但在C++中除定义全局变量外,在其他模块使⽤应先⽤extern⽣明。
8、void指针
在C语⾔中void指针可以赋给任何类型的指针,但在C++中,却不⾏,但可以先进⾏强制数据类型转换,在赋值。
C++ bool数据类型
布尔类型(bool)是C++新增的⼀种基本数据类型。
在标准的C语⾔中并未定义bool类型,如果需要使⽤bool类型,程序员可以通过宏定义来⾃定义⼀个bool类型,定义语句如下:
1#define bool int
2#define false 0
3#define true 1
也就是将int型定义为bool型,将int型的0和1两个值分别定义为bool类型的两个值true和false。
但是在C++中则不需要这么⿇烦,C++中对bool类型已经做出了定义。
bool类型是C++语⾔基本数据结构之⼀,在80x86处理器上编译器gcc 4.8.1和Visual C++ 2012给bool类型变量分配1个字节长度。
bool类型取值范围仅有两个值:true和false。
在做逻辑运算时,默认⾮零即为ture。
定义bool类型变量也与其他基本数据类型变量的定义类似,如下所⽰:
bool flag = true;
C++ 的输⼊输出⽅式
【⽰例】
1 #include <iostream>
2 #include <stdlib.h>
3using namespace std;
4int main(void)
5 {
6 cout<<"请输⼊⼀个整数:"<<endl;
7int x=0;
8 cin>>x;
9 cout<<oct<<x<<endl;//将该整数转变成8进制
10 cout<<dec<<x<<endl;//将该整数转变成10进制
11 cout<<hex<<x<<endl;//将该整数转变成16进制
12
13 cout<<"请输⼊⼀个布尔值(0/1):"<<endl;
14bool y=false;
15 cin>>y;
16 cout<<boolalpha<<y<<endl;//boolalpha表⽰的是布尔值
17 system("pause");
18return0;
19 }。