【C++基础】数据类型

C++规定在创建一个变量或者产量时,必须要指定相应的数据类型,否则无法给变量分配内存空间

数据类型的存在意义:给变量分配合适的内存空间

整型

作用:整型变量表示的是整数类型的数据

在内存中的存储方式如下图所示:

C++中能够表示整型的类型有以下几种方式,区别在于所占内存空间不同

数据类型 占用空间 取值范围
short(短整型) 2个字节 (-215~215-1)
int(整型) 4个字节 (-231~231-1)
long(长整型) Windows为4字节,Linux为4字节(32位),8字节(64位) (-231~231-1)
long long(长长整型) 8个字节 (-263~263-1)

占的空间大小不同,导致取值范围也不一样,占用的空间越大,能表示的数字量的范围越广

int main() {
	// 整型
	// 1、短整型 -32768 ~ 32767
	// short num1 = 10;
	// short num1 = 32768;  // 会输出 -32768

	// 2、整型
	int num2 = 10;

	// 3、长整型
	long num3 = 10;

	// 4、长长整型
	long long num4 = 10;

	// cout << "num1 = " << num1 << endl;
	cout << "num2 = " << num2 << endl;
	cout << "num3 = " << num3 << endl;
	cout << "num4 = " << num4 << endl;

	system("pause");

	return 0;
}

sizeof 关键字

作用:利用sizeof关键字可以统计数据类型所占内存大小

语法:sizeof(数据类型/变量)

int main() {
	// 整型:short(2个字节)	int(4个字节)	  long(4个字节)	 long long(8个字节)
	// 利用sizeof求出数据类型占用内存大小
	// 语法:sizeof(数据类型/变量)

	short num1 = 10;
	cout << "short占用内存空间为:" << sizeof(short) << endl;
	cout << "num1 占用内存空间为:" << sizeof(num1) << endl;
	
	int num2 = 10;
	cout << "int 占用内存空间为:" << sizeof(int) << endl;
	
	long num3 = 10;
	cout << "long 占用内存空间为:" << sizeof(long) << endl;
	
	long long num4 = 10;
	cout << "long long占用内存空间为:" << sizeof(long long) << endl;
	
	// 整型大小比较
	// short < int <= long <= long long

	system("pause");
	return 0;
}

整型大小比较:short < int <= long <= long long

实型(浮点型)

作用:用于表示小数

浮点型变量分为两种

  • 单精度(float)
  • 双精度(double)

两者的区别在于表示的有效数字范围不同

此处与整型数字不太一样,浮点数的有效数字还包括小数点后面几位

而整型的有效范围则不包括小数点之后的内容

浮点数的有效数字不仅指小数点后面的数字,小数点前面的整数部分也属于有效数字

比如:3.14,有3位有效数字

单精度浮点数在定义的时候,会在数字后面加上f

float f1 = 3.14f;

因为若不指明是float类型的话,编译器默认认为它是double类型,如下图所示:

将这个数存到f1时,会将其进行转换,从double类型转换为float类型

输出时,默认会输出6位有效数字

表示小数还有一种方式:科学计数法

科学计数法,e后面如果是正数,则代表 10,如果是负数,则代表 0.1

int main() {	
	// 科学计数法
	float f2 = 3e2;  // e 后面是正数
	// 代表: 3 * 10 ^ 2,也就是300,且小数位都是0
	cout << "f2 = " << f2 << endl;  // 输出是300

	float f3 = 3e-2;  // e 后面是负数
	// 代表:3 * 0.1 ^ 2,这样就是一个小数了,
	cout << "f3 = " << f3 << endl;  // 输出是300
	
    // e后面是正数,代表 10
	// e后面是负数,代表 0.1

	system("pause");
	return 0;
}

字符型

作用:用于显示单个字符

语法:char ch = 'a';

注意1:在显示字符型变量时,用单引号将字符括起来,不要用双引号

注意2:单引号内只能有一个字符,不可以是字符串

  • C和C++中字符型变量只占用1个字节
  • 字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元
int main() {
    char ch = 'a';
    cout << ch << endl;
   	cout << sizeof(char) << endl;
    
    // ch = "abcde"; // 错误,不可以用双引号
    // ch = 'abcde'; // 错误,单引号内只能引用一个字符
    
    cout << (int)ch << endl;  // 查看字符a对应到ASCII码
    ch = 97;  // 可以直接用ASCII给字符型变量赋值
    cout << ch << endl;
    
    system("pause");
    return 0;
}

ASCII码大致分为两部分:

  • ASCII 非打印控制字符:ASCII表上的数字0-31分配给了控制字符,用于控制像打印机等外围设备。
  • ASCII 打印字符:数字32-126分配给了能在键盘上找到的字符,当查看或打印文档时就会出现。

转义字符

作用:用于表示一些不能显示出来的ASCII字符,也就是用于表示一些特殊的字符,就不用记这些特殊字符的ASCII码了,直接用转义字符表示这种特殊字符

常用的转义字符:\n \\ \t

所有的转义字符都是由两个字符拼接成一个字符的,且第一个字符都是\

\n 换行(LF),将当前位置移到下一行开头

\r 回车(CR),将当前位置移到本行开头

\t 水平制表(HT),跳到下一个TAB位置

\\ 代表一个反斜线字符 “\”

int main() {
	// 转义字符

	// 换行符 \n
	cout << "hello world\n";
	
	// 反斜杠 \\
	
	// cout << "\" << endl;  // 报错:缺少右引号
	cout << "\\" << endl; 
	
	// 水平制表符 \t

	cout << "aaa\thelloworld" << endl;
	// \t有多长,取决于前面的字符有多长,加上前面的字符,一共8个字符
	// 前面的aaa有3个字符,则\t输出空格是5个,共8个
	cout << "aaaa\thelloworld" << endl;
	// 前面的aaaa有4个字符,则\t输出空格是4个,共8个
	
	// 水平制表符用于输出的时候有对齐的效果,默认算上前面的字符,共占8个字符
	cout << "aaaa\thelloworld" << endl;
	cout << "aa\thelloworld" << endl;
	cout << "aaaa\thelloworld" << endl;
	// 由输出结果可以看出来,helloworld都是整齐输出的
	system("pause");

	return 0;
}

水平制表符会根据前面的字符个数来判断输出多少个空格,默认共占8个位置

若前面的字符已经有8个了,则在这些字符后面重新找几个字符结合空格去占8个位置

字符串

作用:用于表示一串字符

两种风格

  1. C风格字符串char 变量名[] = "字符串值";

    一些字符组合到一块,就成了字符串,示例:

    int main() {
        char str[] = "hello world";
        cout << str << endl;
        
        system("pause");
        
        return 0;
    }
    

注意:C风格的字符串要用 双引号 括起来

  1. C++风格字符串:string 变量名 = "字符串值";

    int main() {
    	// C++风格字符串
    	// 使用前需要包含一个头文件 #include <string>
    	string str2 = "hello world";
    	cout << str2 << endl;
    	system("pause");
    	return 0;
    }
    

    string类型使用前需要包含头文件#include <string>

布尔类型 bool

作用:布尔数据类型代表 的值

bool类型只有两个值:

  • true 真 (本质是1)
  • false 假 (本质是0)

bool类型1个字节大小

int main() {
    bool flag = true;
    cout << flag << endl;  // 1
    
    flag = false;
    cout << flag << endl;  // 2
    
    cout << "size of bool = " << sizeof(bool) << endl;  // 1
    
    system("pause");

    return 0;
}

数据的输入

作用:用于从键盘获取数据

关键字:cin

语法:cin >> 变量

示例:

int main() {
    // 整型输入
    int a = 0;
    cout << "请输入整型变量" << endl;
    cin >> a;
    cout << a << endl;
    
    // 浮点型输入
    double d = 0;
    cout << "请输入浮点型变量" << endl;
    cin >> d;
    cout << d << endl;
    
    // 字符型输入
    char ch = 0;
    cout << "请输入字符型变量" << endl;
    cin >> ch;
    cout << ch << endl;
    
    // 字符串型输入
    string str;
    cout << "请输入字符串型变量" << endl;
    cin >> str;
    cout << str << endl;
    // 布尔类型输入
    bool flag = true;
    cout << "请输入布尔型变量" << endl;
    cin >> flag;
    cout << flag << endl;
    
    system("pause");
    return 0;
}

注释快捷键:先按Ctrl + K然后按Ctrl + C,或者按住Ctrl后依次按 KC

解注释快捷键:先按Ctrl + K然后按Ctrl + U,或者按住Ctrl后依次按 KU

posted @ 2022-02-12 23:14  SeanSiyang  阅读(142)  评论(0编辑  收藏  举报