C++学习笔记 第4课 布尔类型与引用

2021/6/12 12:22:53

本文主要是介绍C++学习笔记 第4课 布尔类型与引用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

    • 1.布尔类型
      • 1.1 布尔类型的值
      • 1.2 布尔类型是基本数据类型
    • 2. 三目运算符
    • 3. C++中的引用
      • 3.1 变量名回顾
      • 3.2 问题引出
      • 3.3 C++中的引用
      • 3.4 引用初体验
      • 3.5 C++中三目运算符做了什么
    • 4. C++中三目运算符做了什么

1.布尔类型

  1. 在c语言的基础上,C++增加了bool类型,在C++中布尔类型可取的值只有0和1
  2. 理论上布尔类型只有一个字节
  3. true代表非0值,flase代表0

1.1 布尔类型的值

  1. 在bool类型只有true(非0)flase(0值)两个值
  2. C++编译器会将非0值转换为true,0值转换为flase
    示例:
#include <iostream>
using namespace std;
int main()
{
	bool a = 0;
	cout << "a = " << a << endl;
	a = 1;
	cout << "a = " << a << endl;
	a = 2;
	cout << "a = " << a << endl;
	a = -1;
	cout << "a = " << a << endl;
}
结果:
a = 0
a = 1
a = 1
a = 1

1.2 布尔类型是基本数据类型

  • 布尔类型是C++中的基本数据类型
  • 可定义全局变量的bool变量
  • 可定义bool类型的指针
  • 可定义bool类型的常量
  • 可定义bool类型的数组

2. 三目运算符

在C++对三目运算符进行了升级
分析下面代码:
test.c

#include <stdio.h>
int main()
{
  int a = 1;
  int b = 2;
  (a<b?a:b)=3;	
  printf("a=%d,b=%d\n",a,b);	
  return 0;
}
结果:
main.c: In function ‘main’:
main.c:7:12: error: lvalue required as left operand of assignment
    7 |   (a<b?a:b)=3;
      |            ^

test.cpp

#include <stdio.h>
int main()
{
  int a = 1;
  int b = 2;
  (a<b?a:b)=3;	
  printf("a=%d,b=%d\n",a,b);	
  return 0;
}
结果:
a=3,b=2
  1. 从结果可以看出,在c语言中的三目运算符返回的是变量值,不可以作为左值使用,
  2. 在C++中三目运算符可以直接返回变量本身,既可以作为左值也可以作为右值,但是需要注意的是
  3. 注意:如果三目运算符中返回的中有一个值是常量值,则不能作为左值使用
    如下,会发生错误
(a < b ? a : 2) = 3;

3. C++中的引用

3.1 变量名回顾

  • 变量实际上是一段连续的内存空间
  • 程序中可以通过变量申请并命名存储空间
  • 可以通过变量的名字来使用存储空间,变量实际上相当于这段存储空间的别名
    在这里插入图片描述

3.2 问题引出

一段连续的内存空间只能用一个别名吗?
答:可以用其他别名,即C++中的引用

3.3 C++中的引用

  • 引用可以看做一个已经定义变量的别名
  • 使用:Type& name = var
    语法:
int a = 4;
int& b = a;//b为a的别名,a和b的类型都为int
b = 5;//操作b相当于操作a
  • 需要注意的是普通引用在定义时必须用同类型的变量进行初始化

3.4 引用初体验

test.cpp

#include <iostream>
int main()
{
	int a = 4;
	int& b = a;
	std::cout << "a ="  << a  << std::endl;
	std::cout << "b =" << b  << std::endl;
	std::cout << "&a ="<< &a << std::endl;
	std::cout << "&b =" << &b << std::endl;

	return 0;
}
结果:
a =4
b =4
&a =00BCFC00
&b =00BCFC00

当a和b类型不同时:将

float& b = a;

在vs2019中直接报错

3.5 C++中三目运算符做了什么

  1. 三目运算符可能返回都是变量时,返回变量引用
  2. 三目运算符的可能返回中有常量时,返回值
int a = 1;
int b = 2;
(a < b?a:b)=3;//正确,返回a或者b的引用,可以作为左值
(a < b?1:b)=3;//错误,返回1或者b的值,不能作为左值

4. C++中三目运算符做了什么

  • bool类型是C++中新增加的基础类型
  • bool类型的只能是true和flase
  • C++中是三目运算符可作为左值使用
  • C++中的引用可以看做变量的别名使用
  • 三目运算符可能返回的值都是变量时,返回的是引用


这篇关于C++学习笔记 第4课 布尔类型与引用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程