C++数据类型(整型、浮点型、字符型、字符串型、布尔型)


C++创建变量或常量时,必须指定数据类型,否则无法为变量分配内存。

数据类型的意义:为变量分配合适的内存空间,避免浪费内存资源。


1 整型

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

C++中共有4种表示整型的类型,区别在于所占内存空间可表示的取值范围不同。

注:实际开发中,较多使用int类型表示整型数据,占用空间大小为4字节

数据类型占用空间取值范围
short(短整型)2字节(-2^15 ~ 2^15-1)
int(整型)4字节(-2^31 ~ 2^31-1)
long(长整形)Windows为4字节,Linux为4字节(32位),8字节(64位)(-2^31 ~ 2^31-1)
long long(长长整形)8字节(-2^63 ~ 2^63-1)

注:不同整型占用的内存空间比较:short < int <= long <= long long


2 sizeof关键字

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

语法sizeof(数据类型)sizeof(变量名)

示例

int main() {
	cout << "short 类型占用的内存大小:" << sizeof(short) << endl;

	int num = 10;
	cout << "int 类型占用的内存大小:" << sizeof(int) << endl;
	cout << "int 类型占用的内存大小:" << sizeof(num) << endl;

	cout << "long 类型占用的内存大小:" << sizeof(long) << endl;
	cout << "long long 类型占用的内存大小:" << sizeof(long long) << endl;

	system("pause");
	return 0;
}

3 浮点型(实型)

作用:浮点型变量表示小数类型的数据。

浮点型变量分为两种,区别在于表示的有效数字范围不同
(1)单精度float:4字节
(2)双精度double:8字节

数据类型占用空间有效数字范围
float4字节7位有效数字
double8字节15~16位有效数字

注1:有效数字包括整数部分和小数部分。
注2:C++输出多位小数时默认会显示6位有效数字,需进行额外配置以完整显示全部有效数字。
注3:float类型表示小数时,在数字末尾显式地使用字母f表示单精度,否则编译器会默认将小数视为双精度浮点型(double),再进行类型转换(由double型转换为float型)。

示例:

int main() {
	float f1 = 3.1415926535f;
	cout << "float 类型占用的内存大小:" << sizeof(float) << endl;
	cout << "float 类型占用的内存大小:" << sizeof(f1) << endl;

	double d1 = 3.1415926535;
	cout << "double 类型占用的内存大小:" << sizeof(double) << endl;
	cout << "double 类型占用的内存大小:" << sizeof(d1) << endl;

	//科学计数法表示整数
	float f2 = 3e2; // 3 * 10 ^ 2 
	cout << "f2 = " << f2 << endl;

	//科学计数法表示小数
	float f3 = 3e-2;  // 3 * 0.1 ^ 2
	cout << "f3 = " << f3 << endl;
	return 0;
}

4 字符型

C和C++语言中,字符型变量只占用1个字节
字符型变量是将对应的ASCII编码存放至内存,而不是字符本身。

作用:字符型变量可表示单个字符
语法:char ch = 'a';

注1:使用单引号表示字符,且单引号内有且仅有1个字符,不可以是字符串。
注2:使用 (int) ch 查询字符对应的ASCII编码。'a’对应97,'A’对应65

示例

int main() {
	//字符型变量创建方式
	char ch = 'a';
	cout << ch << endl;

	//字符型变量所占内存大小
	cout << "char字符型变量占用的内存大小:" << sizeof(char) << endl;
	cout << "char字符型变量占用的内存大小:" << sizeof(ch) << endl;

	//字符型变量常见错误
	//char ch2 = "b";		//错误:表示字符时需使用单引号
	//char ch2 = 'abcdef';	//错误:单引号内只能有一个字符

	//字符型变量对应ASCII编码(a:97; A:65)
	cout << (int)ch << endl;
	return 0;
}

ASCII码表格:

ASCII控制字符ASCII字符ASCII字符ASCII字符
0NUT32(space)64@96
1SOH33!65A97a
2STX34"66B98b
3ETX35#67C99c
4EOT36$68D100d
5ENQ37%69E101e
6ACK38&70F102f
7BEL39,71G103g
8BS40(72H104h
9HT41)73I105i
10LF42*74J106j
11VT43+75K107k
12FF44,76L108l
13CR45-77M109m
14SO46.78N110n
15SI47/79O111o
16DLE48080P112p
17DCI49181Q113q
18DC250282R114r
19DC351383S115s
20DC452484T116t
21NAK53585U117u
22SYN54686V118v
23TB55787W119w
24CAN56888X120x
25EM57989Y121y
26SUB58:90Z122z
27ESC59;91[123{
28FS60<92/124|
29GS61=93]125}
30RS62>94^126`
31US63?95_127DEL

ASCII 码的大致组成部分
(1)非打印控制字符:ASCII 表的 数字0-31 分配给控制字符,用于控制如打印机等外围设备。
(2)打印字符:ASCII 表的 数字32-126 分配给键盘上的字符。


5 转义字符

作用:表示一些特殊的无法直接显示的ASCII字符
常用的转义字符有:\n \\ \t

注1:C语言中使用转义字符\n换行,C++中使用endl换行。
注2:表示水平制表符的转义符\t占据8个字符宽度。

转义字符含义ASCII码值(十进制)
\a警报007
\b退格(BS) ,将当前位置移到前一列008
\f换页(FF),将当前位置移到下页开头012
\n换行(LF) ,将当前位置移到下一行开头010
\r回车(CR) ,将当前位置移到本行开头013
\t水平制表(HT) (跳到下一个TAB位置)009
\v垂直制表(VT)011
\\代表一个反斜线字符“\”092
代表一个单引号(撇号)字符039
"代表一个双引号字符034
?代表一个问号063
\0数字0000
\ddd8进制转义字符,d范围0~73位8进制
\xhh16进制转义字符,h范围0-9,a-f,A~F3位16进制

示例

int main() {
	cout << "\\" << endl;
	cout << "\tHello" << endl;
	cout << "\n" << endl;

	return 0;
}

6 字符串型

作用:表示一串字符

(1)C风格字符串char 变量名[] = "字符串值";
(2)C++风格字符串string 变量名 = "字符串值";

示例

#include <iostream>
#include <string>
using namespace std;

int main() {
	//C风格字符串
	char cStr[] = "hello c str";
	cout << cStr << endl;

	//C++风格字符串
	string cppStr = "hello cpp str";
	cout << cppStr << endl;
	return 0;
}

注1:使用C风格字符串时,需使用双引号将字符串值括起来。
注2:使用C++风格字符串时,需包含头文件#include <string>


7 布尔类型 bool

作用:布尔数据类型表示真或假的值。
bool类型占1个字节大小,且只有两个值:
(1)true: 真(本质是1)
(2)false:假(本质是0)

注:C++的bool类型中,true任意非0值 均代表“真”; false0值 代表“假”。

示例

int main() {
	bool flag = true;
	cout << flag << endl;	// 1(真)

	/* C++的bool类型中,true 或 任意非0值 均代表“真” */
	flag = 6.66f;
	cout << flag << endl;	// 1(真)

	flag = false;
	cout << flag << endl;	// 0(假)

	/* C++的bool类型中,false 或 0值 代表“假” */
	flag = 0;
	cout << flag << endl;	// 0(假)

	cout << "bool类型占用的内存大小:" << sizeof(bool) << endl;
	cout << "bool类型占用的内存大小:" << sizeof(flag) << endl;

	return 0;
}

8 C++数据类型小结

数据类型占用空间取值范围
short(短整型)2字节(-2^15 ~ 2^15-1)
int(整型)4字节(-2^31 ~ 2^31-1)
long(长整形)Windows为 4字节 ;Linux为 4字节(32位) 或 8字节(64位)(-2^31 ~ 2^31-1)
long long(长长整形)8字节(-2^63 ~ 2^63-1)
float4字节7位有效数字
double8字节15~16位有效数字
char1字节ASCII码范围(0~127)
bool1字节0或1

9 数据的输入

作用:从键盘获取数据,并赋值给cin对应的变量
关键字:cin
语法cin >> 变量

示例

#include <iostream>
#include <string>
using namespace std;

int main() {
	//字符串型输入
	string str = "hello world";
	cout << "请输入字符串型变量:" << endl;
	cin >> str;				//输入:hello cpp
	cout << str << endl;	//输出:hello cpp

	//布尔类型输入
	bool flag = false;
	cout << "请输入布尔型变量:" << endl;
	cin >> flag;			//输入:3.1415926f
	cout << flag << endl;	//输出:1

	return EXIT_SUCCESS;
}
C++ 是一种面向对象的编程语言,它是 C 语言的扩展,支持面向对象编程、泛型编程、模板和异常处理等特性。下面是一个简单的 C++ 教程,介绍 C++ 基础语法和常用概念。 ### Hello World 让我们从经典的 Hello World 程序开始: ```c++ #include <iostream> using namespace std; int main() { cout << "Hello World!" << endl; return 0; } ``` 这个程序使用了 `iostream` 标准库,定义了一个 `main()` 函数,输出了字符串 "Hello World!"。 ### 变量和数据类型 C++ 支持多种数据类型,例如整型浮点型字符型布尔型等。在使用变量之前,需要先定义它们的数据类型和名称。 ```c++ int i = 10; // 整型 float f = 3.14; // 单精度浮点型 double d = 3.1415926; // 双精度浮点型 char c = 'A'; // 字符型 bool b = true; // 布尔型 ``` ### 运算符 C++ 支持多种运算符,例如算术运算符(`+`、`-`、`*`、`/`、`%`)、关系运算符(`<`、`>`、`<=`、`>=`、`==`、`!=`)、逻辑运算符(`&&`、`||`、`!`)等。运算符的优先级也需要注意。 ```c++ int a = 10, b = 20; int c = a + b; // 加法运算 int d = a * b; // 乘法运算 bool e = a > b; // 关系运算 bool f = !e; // 逻辑运算 ``` ### 控制流程 C++ 支持多种控制流程语句,例如条件语句(`if-else`)、循环语句(`for`、`while`、`do-while`)、跳转语句(`break`、`continue`、`goto`)等。这些语句可以帮助程序根据不同的条件执行不同的代码。 ```c++ int n = 10; if (n > 0) { cout << "n is positive" << endl; } else { cout << "n is negative" << endl; } for (int i = 0; i < n; i++) { cout << i << endl; } while (n > 0) { cout << n << endl; n--; } do { cout << n << endl; n++; } while (n < 10); switch (n) { case 1: cout << "n is 1" << endl; break; case 2: cout << "n is 2" << endl; break; default: cout << "n is neither 1 nor 2" << endl; } ``` ### 函数和类 C++ 支持函数和类的定义,这是面向对象编程的基础。函数是一段完成特定任务的代码,可以在程序的任何地方调用它们。类是一种封装了数据和方法的数据类型,用于描述对象的行为和属性。 ```c++ // 函数定义 int add(int a, int b) { return a + b; } // 类定义 class Student { public: string name; int age; void study() { cout << "I am studying." << endl; } void sleep() { cout << "I am sleeping." << endl; } }; ``` ### 模板和异常处理 C++ 还支持模板和异常处理等高级特性。模板是一种泛型编程的技术,可以在编写代码时不指定具体的数据类型。异常处理是一种机制,用于在程序出现错误时捕获并处理异常,防止程序崩溃。 ```c++ // 模板定义 template<typename T> T add(T a, T b) { return a + b; } // 异常处理 try { int x = 10, y = 0; if (y == 0) { throw "Division by zero!"; } int z = x / y; } catch (const char* msg) { cerr << msg << endl; } ``` 这是一个简单的 C++ 教程,介绍了 C++ 基础语法和常用概念。如果想深入学习 C++,可以阅读更多相关的书籍和教程。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值