C++学习笔记(三):布尔类型和引用

摘要:
0x01c++中的布尔类型c++将bool添加到c语言的基本类型系统中,其唯一值为true和false;True表示真值,在编译器内部用1表示。同时,非零值将转换为真。False表示非真值,在编译器内部由0表示。当三元运算符的返回值可能是变量时,返回值是变量引用。当三元运算符的返回值可以是常量时,返回值是一个值

0x01 c++中的布尔类型

c++在C语言的基本类型系统之上增加了bool,其可取的值只有true和false;true代表真值,编译器内部用1来表示,同时会将非0值转化为true,false代表非真值,编译器内部用0来表示。

可以定义布尔类型的全局变脸、常量、指针、数组......

1. 通过上述的描述,来理解以下代码对应的输出结果:

#include <stdio.h>

int main(int argc, char *argv[])
{
    bool b = false;
    int a = b;
    
    printf("sizeof(b) = %d
", sizeof(b));
    printf("b = %d, a = %d
", b, a);
    
    b = 3;
    a = b;
    
    printf("b = %d, a = %d
", b, a);
    
    b = -5;
    a = b;
    
    printf("b = %d, a = %d
", b, a);
    
    a = 10;
    b = a;
    
    printf("a = %d, b = %d
", a, b);
    
    a = 0;
    b = a;
    
    printf("a = %d, b = %d
", a, b);
    
    return 0;
}

C++学习笔记(三):布尔类型和引用第1张

0x02 三目运算符

1. c++对三目运算符进行了以下升级:

c++中的三目运算符可直接返回变量本身,既可以作为左值使用,也可以作为右值使用。

但是需要注意的是:三目运算符可能返回的值中如果有一个是常量值,则不能作为左值使用。

int main(int argc, char *argv[])
{

	int a = 1;
	int b = 2;

	(a < b ? a : b) = 3;

	printf("a = %d, b = %d
", a, b);

	return 0;
}

C++学习笔记(三):布尔类型和引用第2张

C++学习笔记(三):布尔类型和引用第3张

0x03 C++中的引用

1. 在c++中新增加了引用的概念:

  • 引用可以看作一个已定义变量的别名
  • 引用的语法:Type& name = var;

普通引用在定义时必须使用同类型的变量进行初始化

代码示例:

#include <stdio.h>

int main(int argc, char *argv[])
{
    int a = 4;
    int& b = a;
    
    b = 5;
    
    printf("a = %d
", a);
    printf("b = %d
", b);
    printf("&a = %p
", &a);
    printf("&b = %p
", &b);
    
    return 0;
}

运行结果:

a = 5
b = 5
&a = 001EF7EC
&b = 001EF7EC
请按任意键继续. . .

2. c++对三目运算符做了什么?

  • 当三目运算符的返回值可能都是变量时,返回的是变量引用
  • 当三目运算符的返回值可能返回中有常量时,返回的是值

免责声明:文章转载自《C++学习笔记(三):布尔类型和引用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇网络设备性能指标之ppsNginx基础配置指令下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

微信小程序 View:flex 布局

微信小程序View支持两种布局方式:Block和Flex所有View默认都是block要使用flex布局的话需要显式的声明:display:flex;下面就来介绍下微信小程序的Flex布局先做一个简单的demo123加上背景色能看的更清楚些.main{width:100%;background-color:antiquewhite;}.item{height...

FastDFS安装

FastDFS安装包FastDFS安装包百度网盘密码aj4f下载后把安装包移动到服务器里面这里我把安装包放在opt/FastDFSFastDFS安装安装环境在本地安装就需要安装gcc环境yum-yinstallcmakemakegcc-c++在阿里服务器因为帮你配置好了的解压libfastcommon到指定目录解压-C指定解压的目录#解压[root@rzkF...

关于WINFORM中输入法的设置

关于WINFORM(转移到)John Suna的专栏开发中输入方法的设置,它碰巧遇到了这种问题。网络真的很好:)这是文本集。感谢作者的辛勤工作给您带来的便利。在WINFORM中,我们经常遇到这样的问题:文本输入框中的输入法被禁用或总是更改为全宽输入法。查阅相关数据后,总结如下:(1)Control.ImeMode属性:获取或设置控件的输入方法编辑器模式。此模...

如何下载Chrome离线版EXE安装文件和MSI版安装文件

对于Chrome的稳定版本(官方版本),您只需添加“?”在Chrome的“最终用户许可协议”页面上的链接之后?Standalone=1对于Beta版和开发版Chrome,只需记住以下地址:http://dl.google.com/chrome/install/{versionnumber}/crome_安装程序中的版本号。exe表示要下载的Chrome版本号...

C# Winform Treeview控件

WinformTreeview控件目录手动添加节点。丰富节点数据并清除所有节点信息。选择指定的节点。函数GetAllTreeNodeWinformTreeview控件手动添加节点//在根节点下添加根节点和子节点TreeNodeCollectionRoot=treeView1.Nodes;TreeNodecurNode=根。添加(“良好”);curN(电流)...