数据类型
C++规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存
整型
整型变量表示的是整数类型的数据。
数据类型 | 占用空间 | 取值范围 |
short(短整型) | 1B | -2^7~2^7-1 |
int(整型) | 2B | -2^15~2^15-1 |
long(长整型) | 4B | -2^31~2^31-1 |
long iong int(长长整型) | 8B | -2^63~2^63-1 |
取值范围说明:以int型为例子,占用2字节,也就是说电脑中用16bit来存储数据,最大值max为0111 1111 1111 1111(原码),max+1等于1000 0000 0000 0000(十进制为2^15),则max=2^15-1。最小值min为1111 1111 1111 1111(原码)-->1000 0000 0000 0000(反码)-->1000 0000 0000 0001(补码),min=-(2^15-1)。
+0十六进制为0000 0000 0000 0000(原码或补码);对于-0来说,1000 0000 0000 0000(原码)-->1111 1111 1111 1111(反码)-->0000 0000 0000 0000(补码);不论+0还是-0在计算机中存储形式都是0000 0000 0000 0000,然而我们只需要一个0。因此计算机规定,-0用于表示-2^15。
对于正数(包括+0)来说,其原码0000 0000 0000 0000----0111 1111 1111 1111;对于负数(包括-0)来说,其原码1000 0000 0000 0000---1111 1111 1111 1111,但是-0的补码是0000 0000 0000 0000(原本的补码应该是0001 0000 0000 0000 0000,但是溢出了)。因此在计算机中不可能有1000 0000 0000 0000这样的存储(如果按照正常算法,这个数字代表-0),所以规定(1000 0000 0000 0000)来表示-2^15。
sizeof关键字
功能:利用sizeof关键字可以得到数据类型所占内存大小
语法:sizeof(数据类型/变量)
返回值:占用多少字节
浮点型(实型)
功能:用于表示小数
有效数字:小数点前和后的数字都属于有效数字,例如3.14就有3位有效数字
数据类型 | 占用空间 | 有效数字范围 |
float(单精度) | 4B | 7位有效数字 |
double(双精度) | 8B | 15~16位有效数字 |
//科学计数法
float a=3e2; //若e后是个正整数,表示3*(10^2)
float b=3e-2; //若e后是个负整数,表示3*(0.1^2)
字符型
功能:字符型变量用于表示单个字符
语法:char 变量名='单个字符'
注意1:在显示字符型变量时,用单引号将字符括起来,不要用双引号
注意2:单引号内只能有一个字符,不可以是字符串
C和C++中字符型变量只占用1个字节。
字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元
转义字符
功能:用于表示一些不能显示出来的ASCII字符
转义字符 | 含义 |
\n | 换行,将当前位置移到下一行开头 |
\r | 回车,将当前位置移到本行开头 |
\t | 水平制表,跳到下一 个TAB位置,可以整齐地输出数据 |
\\ | 代表一个反斜线字符"\" |
字符串型
功能:用于表示一串字符
两种风格:
1、c语言风格字符串:char 变量名[]=“字符串”
char str="niushuaihan";
//打印字符串str
cout<<str<<endl;
2、c++语言风格字符串:string 变量名=“字符串”
#include<string> //必须添加这个头文件
string str="niushuaihan";
cout<<str<<endl; //打印字符串str
string ID="ABC";
str+=ID[1]; //在str字符串的后面添加上字符B
布尔类型(bool)
功能:布尔数据类型代表真或假
占用空间:1B
注意:0表示假,不是0的数字都表示真
数据的输入
功能:用于从键盘获取数据
string str;
//输入字符串
cin>>str;
算术运算符
加减乘除:
//两个整数相除得到商,但除数或者被除数至少有一个是小数,得到结果是小数
int a=10,b=3;
float x=0.5,y=0.25,z=0.22;
cout<<a/b<<endl; //结果为3
cout<<x/y<<endl; //结果为2
cout<<x/z<<endl; //结果为2.27273.是个小数
自增自减运算:
//前置和后置的区别
//前置递增先让变量+1,然后进行表达式运算
int a1=10;
int b1=++a1*10; //a1=11,b1=110
//后置递增 先进行表达式运算,后让变量+1
int a2=10;
int b2=a2++*10; //a2=11,b2=100
逻辑运算符:
功能:根据表达式的值返回真值或假值
运算符 | 术语 |
! | 非 |
&& | 与 |
|| | 或 |
int a=10,b=2,c=0
cout<<!a<<endl; //输出0,因为a!=0为真,取非变成假
cout<<a&c<<endl; //输出0
cout<<b||c<<endl; //输出1,c++中输出true就会输出1