C++相对于C的两种新的内置类型
来源:互联网 发布:淘宝实拍保护网址 编辑:程序博客网 时间:2024/06/04 08:54
在C语言提供的字符、整型、浮点型、指针、数组、结构和枚举等几类类型的基础上,C++又新增了两类基本类型,分别为布尔型和引用类型。
布尔型(bool)
C
语言中没有明确地提供布尔类型,布尔类型的实现往往是通过宏定义或类型定义实现。C++
为逻辑运算提供了单独的布尔类型(bool
),可以具有值true
或false
之一,其中true
的值被定义为1,false
的值定义为0。在算术运算中布尔型都被转换为int
。整数、字符、浮点数可以隐式转换为布尔型,其中非零数表示true
,零表示false
。指针也可以隐式转换为布尔型,非零指针转换为true
,空指针转换为false
.
/***************************************** * using_bool.cpp * * * * C++语言的基本类型bool型的使用 * *****************************************/#include <cstdio>int main(){ bool a = true; bool b = false; printf("a = %d, b = %d\n", a, b); a = 7; b = -5.3; printf("a = %d, b = %d\n", a, b); int c = a + 1; printf("c = %d\n", c); int *p = &c; bool d = p; printf("d = %d\n", d); bool e = a | b; printf("e = %d\n", e); bool f = 'f'; printf("f = %d\n", f); return 0;}
引用
引用就是某对象的另一个名字,引用的符号为&,常代替指针用于函数参数,避免传递过大数据或支持在函数中修改外部变量的值。也常用于返回值,用以返回某个在函数范围外仍有意义的变量的引用。在C++的运算符重载中引用也发挥着重要作用。
引用的定义形式为:
类型& b = a;
定义了一个引用a
的变量b
,a
和b
指向同一块内存空间。与指针不同,变量b
是变量a
的一个别名,任何使用a
的地方都可以使用b
替换。指针的定义形式为类型 *b = &a
,使用*b
和a
替换。
在定义引用的时候必须对引用进行初始化。引用的值在初始化后就不能被改变了,它将总指向它初始化时指定的那个对象。对T&
类型的引用的初始化必须是左值。而对于const T&
类型的引用的初始化可以不是左值,也可以不是T类型的,在这种情况下,首先将值转换为T
类型,然后将结果存入一个类型T的临时变量,最后将此临时变量用作初始化的值。在使用这个原则时,注意那些在程序运行过程中会消失的临时变量,在变量消失后,引用变得没有意义。
/***************************************** * using_reference.cpp * * * * C++语言中的引用 * *****************************************/#include <cstdio>int main(){ int a = 10; int& r = a; printf("a = %d\n", a); r = 20; printf("a = %d\n", a); //int& r3 = 10;不正确,int&只能利用左值初始化 const int& r2 = 10;//const int&可以使用右值初始化 printf("r2 = %d\n", r2); return 0;}
参考文献
- Bjarne Stroustrup著,裘宗燕译. C++程序设计语言(特别版).机械工业出版社 2009.
0 0
- C++相对于C的两种新的内置类型
- C/C++ 内置类型的数值范围
- objective-c计算相对于现在的时间差
- pro*c里,相对于c,c++体现的一个优点
- C/C++拾遗录--每种内置类型的长度
- C++(二)内置类型
- [转]C99标准的新特性(相对于Ansi C)
- C99标准的新特性(相对于Ansi C)
- C++primer 标准库类型和内置类型默认的初始化
- c——内置类型
- 32位和64位系统下C内置类型的长度
- 使用C内置的float类型来建模一个FIR滤波器
- 有章法的学习c++(4)基本内置类型(一)
- 有章法的学习c++(4)基本内置类型(二)
- C/C++壳与汇编壳的不同以及DLL壳相对于EXE壳的难点
- c的bool类型
- c 类型的声明
- C的“类型提升”
- php识别文件夹下所有文件夹
- 网络数据挖掘程序的设计
- 全文搜索Proxy
- 一个想法
- Android学习记录之ListView特殊属性介绍
- C++相对于C的两种新的内置类型
- ACE PROACTOR EPOLL ET模式
- Hierarchical task network&STRIPS
- Android Api Demos登顶之路(五十八)Service Start Argument Control
- BestCoder Round #54 (div.2) HDOJ5430 Reflect(欧拉函数+脑洞)
- Android 获取Uri路径的正确方法(2012-11-9更新 支持Android4.1)
- 自学spark资料收集
- 数据结构中基本运算验证性实践路线建议——以顺序表为例
- WorkWin监控软件优势及特点