在上一讲中,我们分析了一个基本C++程序的三个部分,并且用dev C++编写了第一个C++程序,然后编译运行。 1. #include<iostream> 2. 3. using namespace std; 4. 5. int main(){ 6. int a,b,c; 7. cin>>a>>b; 8. c=a+b; 9. cout<<c; 10.} 但是,我们在程序运行检测中,发现程序不能支持大整数的加法,也不能支持小数的加法,为什么呢? 数据类型上述问题,跟数据类型有关系。数据类型是程序的基础,它告诉我们数据的意义以及我们能在数据上执行的操作。C++语言支持广泛的数据类型。它定义了几种基本内置类型(如字符、整型、浮点数等),同时也为程序员提供了自定义数据类型的机制。这里,我们先认识两种基本的类型:整型和浮点型。 整型 整型,其实也是整数,C++中用int来标识。与数学上整数的概念不同的地方,计算机中的整型是一个有限的概念,数学上的整数是一个无穷的概念,不存在一个最大的整数,但是在C++中,int所能表示的整数是有一个范围的,在-2147483648至2147483647之间,超过这个范围,就不是int所能表示的了。当然,在C++中,关于整型的标识符可不止int一个,还有short,long long等。如果我们把整型比喻成一个物品类,比如衬衣,那么int就相当于衬衣中的中码,short就是小码,long long就是大码,当然还有加大码,不过现在这三个整型标识符就足够我们用了。记住,每个整型标识符(short、int、long long)的表示范围都是有限的。以下是关于整型更详细的范围介绍。
认识整型概念了,我们要让我们的程序支持更大整数的加法,可以很容易的实现,如下图所示。但是,尽管改成了大码的整型long long,它也是有一个范围限制的。 1. #include<iostream> 2. using namespace std; 3. int main(){ 4. long long a,b,c; //这里int改成了long long 5. cin>>a>>b; 6. c=a+b; 7. cout<<c; 8. } 浮点型 浮点型是用来表示小数的数据类型,在C++中浮点型的标识符有float、double和long double,这三个类型也好比衣服界的小码、中码、大码,表示的数据范围不同。具体范围如下:
表中的数值范围用的是科学计数法,如3.4E+38是指3.4*1038 同理,认识浮点型后,我们也很容易将我们的程序改造成支持小数运算,方法如下: 1. #include<iostream> 2. using namespace std; 3. int main(){ 4. double a,b,c; //这里将int类型改成了double类型 5. cin>>a>>b; 6. c=a+b; 7. cout<<c; 8. } 变量其实数据类型,指的是一种规范,一种标准,好比我们说大码的衣服,指的是这件衣服领口的标准、袖长的标准,并没有具体指哪一件衣服,我们说整型int,指的是一个能够表示整数,且数据范围在-2147483648至2147483647之间的一种规范,并没有具体告诉程序怎样来存储这样的数据。 正如我们可以按照大码的尺寸来生产衣服一样,我们也可以按照int的标准来制定存储空间,这样所制定的存储空间,我们称为变量。变量提供一个具名的、可供程序操作的存储空间,C++中的每个变量都有其数据类型,数据类型决定着变量所占的内存空间大小、存储值的范围以及变量能参与的运算。声明变量的格式如下: 类型说明符变量名列表; 这里,我们举例来说明: int a; 这句话的意思是告诉程序,我需要分配一个能装int类型数据的内存空间,并且给这个内存空间取名为a。这里的内存空间就像一个容器一样,它能装int类型的数据,同时也意味着它只能装整数,而且整数的范围在-2147483648至2147483647之间。简单的理解就是,变量是一种能装特定数据类型的容器,具体能装什么数据类型,在声明的时候就确定了。以下是更丰富的变量声明方式: 1. int sum; //分配一个能装int数据类型的内存空间,给它取名为sum 2. float price,cost,pay; //声明三个float类型的变量,分别取名为price,cost,pay 3. int a=5,b=10,c=1; //声明三个int类型的变量a、b、c,并且给它们赋初值 这里还需要特别强调的是,声明变量时,变量名是由我们自己取名的,取名的时候需要遵守以下规范:
练习:请指出下面的名字中哪些是非法的? 1. int double=3.14; 2. int _; 3. int catch-22; 4. int 1_or_2=1; 5. double Double=3.14; 往下看答案。 1. int double=3.14; //非法,double是数据类型关键字 2. int _; //合法,下划线开头,但不建议这样取变量名 3. int catch-22; //非法,包含非法字符‘-’,变量名只能是数字、字母和下划线 4. int 1_or_2=1; //非法,必须以字母和下划线开头 5. double Double=3.14; //合法,Double和double是不一样的,区分大小写 赋值语句刚刚,我们说了变量是一个容器,可以往里面装数据,但是怎么装呢?这里就需要用到我们的赋值语句。赋值语句的作用就是将一个数据存储到变量中,赋值语句的一般形式: 变量=表达式; //不要漏了末尾的分号哦 在C++语言中,“=”作为赋值运算符,而不表示“等于”判断。赋值语句是由赋值表达式再加上分号构成的表达式语句。样例分析 1. a=3; //将数值3存储在左边的变量a中 2. b=4; //将数值4存储在左边的变量b中 3. c=a+b; //计算a+b的结果,将结果存储在左边的变量c中 注意,赋值运算符的左侧运算对象必须是一个变量。以下赋值语句是非法的。 1. 1024=k; //非法赋值,1024不能是变量名 2. i+j=k; //非法赋值,i+j不能是变量名 在进行赋值运算时,如果赋值运算符两边的数据类型不同,系统将会自动进行类型转换,即将赋值运算符右边的数据类型转换成左边的变量类型。当左边是整型而右边是实型时,将去掉小数部分并截取该整型对应的有效位数。如下程序所示: 1. #include<iostream> 2. using namespace std; 3. int main(){ 4. int a=4; 5. float b=3.1415624; 6. a=b; 7. cout<<a<<endl; 8. } 输出语句在了解了这么概念后,我们继续来看什么是输出语句。 1. #include<iostream> //引用头文件 2. using namespace std; //声明命名空间 3. int main(){ //主函数 4. int a,b,c; //声明三个int类型的变量,命名为a,b,c 5. cin>>a>>b; 6. c=a+b; //赋值语句,将a+b的结果存储到c变量中 7. cout<<c; //输出语句, (σ゚∀゚)σ..:*☆我是主角哦 8. } 一个程序可以没有输入,但不能没有输出(好吧,我说的是信息学竞赛的题目),我们辛辛苦苦编写一个程序,不就是让计算机计算之后告诉我们答案嘛。 在C++中,输出语句由cout和流插入运算符<<结合在一起使用,可向显示器屏幕输出数据,其基本格式如下: cout<<表达式; 输出语句可以把表达式的值输出到屏幕上,该表达式可以是各种基本类型的常量、变量或者由它们组成的表达式。输出时,程序根据表达式的类型和数值大小,采用不同的默认格式输出,大多数情况下可满足要求。若要输出多个数据,可以连续使用流插入运算符。 以下是示例 1. #include<iostream> 2. using namespace std; 3. int main(){ 4. double a,b,c; 5. a=3; 6. b=4; 7. c=3+4; 8. cout<<c; //输出变量的值 9. } Cout的注意事项: 1.每当我们输出字符串常量的时候,必须用双引号把字符串引起来,以便将它和变量名明显的区分开来。下面两个语句是不同的: 1. cout << 'Hello' ; //打印字符串Hello到屏幕上 2. cout << Hello ; //把变量Hello存储的内容打印到屏幕上 2.必须注意,cout并不会自动在其输出内容的末尾加换行符,因此下面的语句: cout << 'This is a sentence.' ; cout << 'This is another sentence.' ; 将会有如下内容输出到屏幕: This is a sentence.This is another sentence. 为了在输出中换行,可以用操作符endl(endline)来换行,例如: cout << 'First sentence.' << endl; cout << 'Second sentence.' << endl; 将会输出: First sentence. Second sentence. 练习:如何让我们两个数的加法输出结果更友好一些,比如输出结果如下 这里是参考代码: 1. #include<iostream> 2. using namespace std; 3. int main(){ 4. int a,b,c; 5. cin>>a>>b; 6. c=a+b; 7. cout<<a<<'+'<<b<<'='<<c; //注意这一句 8. } 输入语句我们来讲本节的最后一个内容,输入语句。 1. #include<iostream> //引用头文件 2. using namespace std; //声明命名空间 3. int main(){ //主函数 4. int a,b,c; //声明三个int类型的变量,命名为a,b,c 5. cin>>a>>b; //输出语句, (σ゚∀゚)σ..:*☆轮到我做主角了 6. c=a+b; //赋值语句,将a+b的结果存储到c变量中 7. cout<<c; //输出变量c的值 8. } 我们的程序用了输入语句,才能实现交互,也才能解决各种不同数据的问题。输入语句由cin和流读取运算符>>结合在一起使用,其功能是程序运行后遇到输入语句停留下来,从键盘读取数据并将其赋给“变量”。以下是输入语句的格式 cin>>变量1>>变量2>>变量3·······; 以下是示例: 以上代码编译运行后,遇到cin语句,程序暂停运行,等待用户输入数据。这时,用户需要输入和cin语句后面所接的变量个数相同,变量类型相同的数据,数据输入后,会依次赋值给变量。如下图所示,因为cin>>a>>b;这里有两个变量a和b,所以需要输入两个数值,因为a和b是整型,所以要求输入的数据类型是整型,数据输入结束后(按回车表示输入结束),34会赋值给变量a,26会赋值给变量b。 输入语句的注意事项: 1、在使用cin输入的时候必须考虑后面的变量类型。如果你要求输入一个整数,在 >>后面必须跟一个整型变量,如果要求一个字符,后面必须跟一个字符型变量。 2、可以连续使用>>,实现从键盘对多个变量输入数据。这要求从键盘输入的数据的个数、类型与变量相一致。从键盘读取数据时,各数据之间要有分隔符,分隔符可以是一个或多个空格键、回车键等。 练习:输入三个整数,实现三个整数的加法。如下所示: 参考代码如下: 1. #include<iostream> 2. using namespace std; 3. int main(){ 4. int a,b,c,d; 5. cin>>a>>b>>c; 6. d=a+b+c; 7. cout<<a<<'+'<<b<<'+'<<c<<'='<<d; 8. } |
|