不同的操作系统下即使是同一种数据类型,它们所站用的内存空间也是有所区别的。使用sizeof()可以查看数据的内存空间,使用方法:sizeof(类型名或变量名)
#include整数类型:short、int、long、long longusing namespace std; int main(){ int num1 = 10; short num2 = 10; cout << "int类型所占用的空间是" << sizeof(int) << "字节" << endl; cout << "short类型所占用的空间是" << sizeof(short) << "字节" << endl; system("pause"); return 0; }
short类型所占用的内存空间为2字节
int类型所占用的内存空间为4字节
long类型在windows所占用的内存空间为4字节,在Linux 32位系统中占用的是4字节,64位占用的是8字节
long long类型所占用的内存空间为8字节
#includeusing namespace std; int main(){ // 定义变量格式:类型关键字 变量名 = 初始数据; short num1 = 10; int num2 = 10; long num3 = 10; long long num4 = 10; cout << "short类型数据的内存空间是" << sizeof(num1) << "字节" << endl; cout << "int类型数据的内存空间是" << sizeof(num2) << "字节" << endl; cout << "long类型数据的内存空间是" << sizeof(num3) << "字节" << endl; cout << "long long类型数据的内存空间是" << sizeof(num4) << "字节" << endl; system("pause"); return 0; }
数据类型按所占用的内存排序:
short < int <= long <= long long
实数类型(浮点型):float、doublefloat:4字节,7位有效数字
double:8字节,15到16位有效数字
有效数字是从数值的第一位非零数字开始算
#include字符型:charusing namespace std; int main(){ float f1 = 3.14f; double d1 = 3.14; cout << "float类型数据占用内存空间为" << sizeof(float) << "字节" << endl; cout << "double类型数据占用内存空间为" << sizeof(double) << "字节" << endl; float f2 = 3.14159263f; double d2 = 3.1415926; // 默认情况下计算机只展示6位有效数字 cout << "f2 = " << f2 << endl; cout << "d2 = " << d2 << endl; // 科学计数法,e或者E后面的数表示10的多少次方,再乘以e前面的数,得到的就是该数字的值 float f3 = 3e2; cout << "f3 = " << f3 << endl; float f4 = 314e-2; cout << "f4 = " << f4 << endl; system("pause"); return 0; }
字符型数据是指单个的字符,定义字符型数据时字符只能使用单引号括起来,其存储逻辑是将字符转换为ASCII码值,再转换成二进制存储。
#include转义字符using namespace std; int main(){ char ch1 = 'a'; cout << ch1 << endl; cout << sizeof(ch1) << endl; // 将ch1强转为整型,查看ASCII码值 cout << (int)ch1 << endl; system("pause"); return 0; }
以反斜杠开头具有特殊含义的字符,常见的有n、t、\等等
#include字符串:string、charusing namespace std; int main(){ // n换行,用在字符串末尾可代替endl使用 cout << "aaaaaaaaan"; // t视前文字节数填充空格共同构成一个缩进距离(8位) cout << "aatHelloWorld" << endl; // \表示输出,一般用于文件路径 cout << "aaa\bbb" << endl; // b退格一格 cout << "aaaabHelloWorld" << endl; // r退格至首行 cout << "aaaarHelloWorld" << endl; system("pause"); return 0; }
字符串即用于表示一串字符,字符串数据用双引号括起来。字符串有两种定义方式:
C语言风格定义方式:char 变量名[] = “字符串”;
C++语言风格定义方式:string 变量名 = “字符串”;
C++语言本身就对C++有兼容性,所以以上两种定义方式在C++中均可
#include布尔类型:bool#include using namespace std; int main(){ char ch1[] = "Hello World"; cout << ch1 << endl; // 使用C++风格定义字符串时,需要加入一个头文件#include string str1 = "You see you, one dayday"; cout << str << endl; system("pause"); return 0; }
bool类型只有两个值:true代表真(本质上是1),false代表假(本质上是0)。bool类型数据占用内存空间为1字节
定义格式:bool 变量名 = 值;
#include数据的输入using namespace std; int main(){ bool flag = true; cout << flag << endl; // 输出结果为1 flag = false; cout << flag << endl; // 输出结果为0 system("pause"); return 0; }
用于从键盘获取数据,获取输入信息的方式是:
1、定义变量
2、cin >> 变量名;
上述第二步可以理解为有外部对变量重新赋值。所以,输入的数据只能跟定义变量的数据类型相同。
#include#include using namespace std; int main(){ int num1 = 0; cout << "num1 = " << num1 << endl; cout << "请对num1重新赋值" << endl; cin >> num1; cout << "num1 = " << num1 << endl; float num2 = 3.14f; cout << "num2 = " << num2 << endl; cout << "请对num2重新赋值" << endl; cin >> num2; cout << "num2 = " << num2 << endl; char ch1 = "a"; cout << "ch1 = " << ch1 << endl; cout << "请对ch1重新赋值" << endl; cin >> ch1; cout << "ch1 = " << ch1 << endl; string str = "hello"; cout << "str = " << str << endl; cout << "请对str重新赋值" << endl; cin >> str; // cin不能识别空格,若输入的内容包括空格,str将只储存第一个空格以前的数据 cout << "str = " << endl; bool flag = false; cout << "flag = " << flag << endl; cout << "请对flag重新赋值" << endl; cin >> flag; cout << "flag = " << endl; // 所有非0非空的值都是true,反之为false system("pause"); return 0; }



