处理数据
面向对象的本质是设计并拓展自己的数据类型。内置的C++类型分为两组:基本类型和复合类型。在这里先暂时看整型和浮点型。
变量名
设置变量对象变量名时,需要遵循以下规则:
1、在名称中只能使用字母字符、数字、下划线。
2、名称的第一个字符不能是数字。
3、区分大写字符与小写字符。
4、不能将C++的关键字作为名称。
5、以两个下划线打头或下划线和大写字母打头的名称被保留给实现(编译器及其使用的资源)使用。以一个下划线开头的名称被保留给实现,用作全局标识符。
6、C++对于名称的长度没有限制,名称中所有的字符都有意义,但是在某些软件平台上有长度限制。
命名方案
变量的命名方案和函数的命名方案差不多,在取名时,要尽量做到见名知意。
整型
整型就是整数,即没有小数点的数字,C++中的基本整型是char、short、int、long和long long。
关于基本整型的长度:
· short至少16位;
· int至少与short一样长;
· long至少32位,且至少与int一样长;
· long long至少64位,且至少与long一样长;
位和字节数
计算机内存基本单元是bit(位)。每一位都有不同的表达方式,
字节(byte)通常指的是8位的内存单元,1KB=1024字节,1MB=1024KB。
实际上,short是 short int的简称,long 是long int 的简称,但是在程序编辑中,很少使用这样的形式。
符号常量
#define INT_MAX 1024
在C++编译过程中,首先会将源码传递给预处理器。在这里的#define和#include一样,都是一个预处理命令。此编译指令会告诉预处理器,把所有程序中的INT_MAX都找出来,并且它们的值都将是1024。
关于初始化,这里要注意一点,如果不对函数内部定义的变量进行初始化的话,该变量的值是不确定的这就意味着,这个变量的值是它被创建之前,相应内存单元(地址)中的值。
无符号类型
要使用无符号类型的数据,仅当数据不会变成负数的时候才可以使用,如人口,颗粒数量等。要创建无符号版本的基本整型,需要用到关键字unsigned来修饰声明即可。
超过最大限度之后,就会从最小值开始++;
整型
在存储数据的时候,不管数据类型是什么,是多少也不管数据类型是十进制,八进制或者是十六进制,都将以二进制数的方式存入计算机。
char类型:字符和小整数
#include <iostream>
int main()
{
using namespace std;
char ch;
cout<< "Enter a character: " << endl;
cin >> ch;
cout << "Hola! ";
cout << "Thank you for the " << ch << "character." <<endl;
return 0;
}
这段代码中,我们在输入时输入M的时候,cin将键盘输入的M转换为77;输出时,cout将值77转换为所显示的字符M。
const限定符
现在回头介绍常量的符号名称,使用const关键字来修饰声明变量和初始化。
例如:需要一个表示一年中月份的符号常量:
const int Months = 12;
这样,就可以在程序中使用Month,而不是使用12,常量在初始化之后,就不可以改变。
注意,在变量声明的时候一定要给变量赋值。不然代码会有歧义。
浮点型
书写浮点型:
12.34
6495325.63
0.00000031
2.0
以上这些都是浮点型数据,即使小数部分为0,也要在后面写上小数点(这样才判断是浮点型,不然就是整型了)。
此外还有一种浮点型的表示方法:E表示法,外观类似3.0e6,这指的是3后面与1000000相乘,e6指的是10的6次方。
浮点型的类型
有float类型,double和long double,这些类型都是按照他们可以表示的有效位数额允许的指数的最小范围来描述的。有效位指的是数字中有意义的位。
浮点型的优缺点
与整形相比,浮点型有点在于:1.可以表述整数之间的值。2.表示的范围大很多。3.浮点运算的速度通常比整形运算的速度慢,并且精度降低了很多。
C++的算术运算符
C++中有五种算术运算符:加法、减法、乘法、除法以及求模。每种运算符都需要使用两个操作数来计算结果。
运算优先级
算数运算符遵循通常的代数优先级:先乘除再加减。
除法分支和求模运算符
如果两个数都是整数的话,在做除法的时候,C++将执行整数除法,这就意味着小数部分会被丢弃,使得最后获得一个整数。如果其中有一个或者两个都是浮点型数据的话,小数部分会被保留,结果为浮点型。
求模运算中,%就是运算符,在使用求模运算时,是将相除数据的整数部分舍去,而使用小数部分。
C++中的auto声明
C++11中增加了一个工具,让编译器能够根据初始值的类型推断变量的类型。因此,重新定义了auto的概念。