Linux C++ 自学笔记2

布尔数据

值只有真和假两种

枚举类型

枚举的声明

格式:enum 枚举名{元素名1,元素名2…元素名n};
例如:

enum MONTH{
    
    JAN,FEB,MAR,APR,MAY,JUNE,JUL,AUG,SEP,OCT,NOV,DEC};

枚举类型声明中的元素为枚举文字,不是变量
内部是怎么存储的呢?他会把里面的元素映射成数字,其中最顶头的元素映射为0,后面文字自动是前面文字+1。我还可以自定义顺序,例如把JAN改为JAN = 1,表示从1开始递增。

枚举的定义

例如:

MONTH month;

然后month就可以被赋值了,month可以被赋值为JAN,可以是FEB。但是注意,虽然内部是按照整数存储的,也不可以直接把month赋值为1,或者其他整数。

用户自定义类型

自定义类型的格式

格式:typedef 原类型标识 新类型名

自定义类型的性质

新类型与原类型相同,并未产生新类型,重新命名的自定义类型使程序更易理解。
若整数可以用于表示两类不同的数据对象,使用自定义类型可以区分它们的自定义类型,不是简单的类型替换,虽然他们确实等同。

布尔类型

取值:false true
false表示0,true是1;

bool量的定义
定义: bool modified;
赋值:modified = true;

以C99标准为例,C里面不能直接使用bool类型,C++可以用;C如果要使用需要包含stdbool.h这个头文件,或者像下面一样自己定义

typedef bool _Bool
#define true 1
#define false 0

可以看出_Bool是个底层是可以直接当做bool使用的,他的长度是1,而bool长度是4,所以_Bool更省空间。

逻辑表达式

注:c/c++中以0表示假,非0(通常是1)表示真。所以尽量以布尔值表示逻辑值。

关系操作符:<,>,==,<=,>=,!=
逻辑表达式:&&,||,!
关系操作符和逻辑操作符的优先级从高到底
!
< , >= , > , <=     结合顺序是从左到右
== ,!=
&
||

补充个函数

cout<<'s'<<setw(3)<<'a'<<endl;

表示s和a之间有3-1=2个空格,默认使用空格填充,可以使用setfill()来修改填充的字符,setfill(’#’)就是用#填充字符。这个函数在这个头文件里。

猜你喜欢

转载自blog.csdn.net/qq_35543026/article/details/105530190
今日推荐