C++教学——数据类型(2)

上篇文章我们讲了整型(int)、浮点型(float)和字符型(char)变量,本章将讲述布尔类型(bool)、空类型(void)变量、还有几种数组类型

一、布尔类型

布尔类型在计算机中尤为重要,因为他是计算机语言组成的重要部分,在了解布尔类型前,我们需要先了解一下二进制。

二进制,是计算技术中广泛采用的一种数制,由德国数理哲学大师莱布尼茨于1679年发明。进制,是计算技术中广泛采用的一种数制,由德国数理哲学大师莱布尼茨于1679年发明。二进制数据是用0和1两个进制,是计算技术中广泛采用的一种数制,由德国数理哲学大师莱布尼茨于1679年发明。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。

为什么要提到二进制呢?因为布尔类型变量的值只有 0 和 1 ,即 “真” 和 “假”。

在大多数判断式中,返回值都为布尔类型,如:1 < 0 ,返回布尔类型变量值为 0 ,1 > 0,返回布尔类型变量值为 1 ,可在下方程序中验证:

std::cout<<(1<0)<<endl;
std::cout<<(1>0)<<endl;	

输出结果为:

0
1
//可用decltype函数验证,直接输出类型为bool

声明方式:

bool judge;
bool j1,j2;
bool j1=0,j2;
bool j1=0,j2=1;

bool类型的运算主要有三种,与(&&)、或(||)、非(!)

与运算真值表:

A B G
0 0 0
0 1 0
1 0 1
1 1 1

即:当A、B都为真时,表达式为真,可用下列程序验证:

std::cout<<((1<0)&&(1<0))<<endl;
std::cout<<((1<0)&&(1>0))<<endl;	
std::cout<<((1>0)&&(1<0))<<endl;
std::cout<<((1>0)&&(1>0))<<endl;

结果为:

0
0
0
1

或运算真值表:

A B G
0 0 0
0 1 1
1 0 1
1 1 1

即:当A、B有一个为真时,表达式就为真,可用下列程序验证:

std::cout<<((1<0)||(1<0))<<endl;
std::cout<<((1<0)||(1>0))<<endl;	
std::cout<<((1>0)||(1<0))<<endl;
std::cout<<((1>0)||(1>0))<<endl;

结果为:

0
1
1
1

非运算真值表:

A G
0 1
1 0

即:A为真,表达式为假,A为假,表达式为真,可用下列程序验证:

std::cout<<(!(1<0))<<endl;
std::cout<<(!(1>0))<<endl;

结果为:

1
0

二、空类型

空类型,即没有类型的类型,它不属于任意一个变量类型,不是整型,也不是浮点型,更不是字符型,空类型的函数没有返回值。

三、数组

所谓数组,是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。这些无序排列的同类数据元素的集合称为数组。

声明方法:

int a[10];
float b[10];
char c[10];
int a[]={1,2,3,4,5};
int a[5]={1,2,3,4,5};
int a[5]={1,2,3,4};

注意:[]中的值为数组长度,可以理解为可以储存的此变量类型的变量个数。 如:int a[5]可以理解为声明了5个int型变量,并将他们所处的内存位置连接起来。 在未初始化的情况下,数组长度必须为一个确定的值,不可以出现类似int a[];的情况出现,同时,也不允许出现如int a[5]={1,2,3,4,5,6};这样的初始化值个数超出指定数组长度的情况(6>5)。

数组也有多种类型,前面讲的int,float,char,double等等类型都可以声明为数组,对应更改类型名即可。

数组的运用方法:

需要用到数组值时在括号中输入对应的值排列的位置即可,值得注意的是,数组的排列并非从1开始,而是从0开始的,所以当你需要数组中存储的第一个值时,要以name[0]的方式来调用它; 当你需要数组中存储的第二个值时,要以name[1]的方式来调用它; 当你需要数组中存储的第n个值时,要以name[n-1]的方式来调用它。如下:

int a[5]={1,2,3,4,5};
std::cout<<"第一个元素为"<<a[0]<<endl;
std::cout<<"第二个元素为"<<a[1]<<endl;
std::cout<<"第三个元素为"<<a[2]<<endl;
std::cout<<"第四个元素为"<<a[3]<<endl;
std::cout<<"第五个元素为"<<a[4]<<endl;

结果为:

第一个元素为1
第二个元素为2
第三个元素为3
第四个元素为4
第五个元素为5

上面是一维数组,我们还可以声明二维数组,三维数组,甚至更多维的数组,声明方法如下:

int a[5][5]; //二维数组
int a[5][5][5]; //三位数组

正如其名,一维数组为一条线,数据维度只有一维;二位数组为一个面 ,数据维度为二维,三维数组为一个体,数据维度为三维……这与我们生活中的维度是一样的,只要理解了生活中的维度,就可以理解数组的维度。

点赞

发表评论