C++相对于C的两种新的内置类型

来源:互联网 发布:淘宝实拍保护网址 编辑:程序博客网 时间:2024/06/04 08:54

在C语言提供的字符、整型、浮点型、指针、数组、结构和枚举等几类类型的基础上,C++又新增了两类基本类型,分别为布尔型和引用类型。

布尔型(bool)

C语言中没有明确地提供布尔类型,布尔类型的实现往往是通过宏定义或类型定义实现。C++为逻辑运算提供了单独的布尔类型(bool),可以具有值truefalse之一,其中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;}

bool型

引用

引用就是某对象的另一个名字,引用的符号为&,常代替指针用于函数参数,避免传递过大数据或支持在函数中修改外部变量的值。也常用于返回值,用以返回某个在函数范围外仍有意义的变量的引用。在C++的运算符重载中引用也发挥着重要作用。

引用的定义形式为:

类型& b = a;

定义了一个引用a的变量bab指向同一块内存空间。与指针不同,变量b是变量a的一个别名,任何使用a的地方都可以使用b替换。指针的定义形式为类型 *b = &a,使用*ba替换。

在定义引用的时候必须对引用进行初始化。引用的值在初始化后就不能被改变了,它将总指向它初始化时指定的那个对象。对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;}

引用

参考文献

  1. Bjarne Stroustrup著,裘宗燕译. C++程序设计语言(特别版).机械工业出版社 2009.
0 0
原创粉丝点击