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;
}
  • 67
    点赞
  • 354
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
本资源是压缩包形式的, 里面包含 本书,里面是pdf格式的, 带书签目录,本书是完整版的。 资源都是我自己用过的,不骗大家。 本书作者: 肖俊宇 吴为胜; 出版社: 电子工业出版社 内容简介: 《由浅入深学C++:基础、进阶与必做300题(含DVD光盘1张)》是C++语言的入门教程,较为系统地介绍了C++语言的基础内容。本书共分为3篇22章,详细介绍了C++语言的基础知识、面向对象、标准模块、底层开发和综合案例。本书循序渐进地讲述了C++的基础知识、C++程序的组成及其开发过程、C++程序中的数据、表达式和语句、控制程序流程、数组与字符串、指针与引用、使用函数、函数模板、错误和异常处理、宏和预编译、面向对象的开发、封装、继承、多态、类模板、文件流、标准模板库STL和编程实践等内容。 《由浅入深学C++:基础、进阶与必做300题(含DVD光盘1张)》涉及面广,从基本知识到高级内容和核心概念,再到综合案例,几乎涉及C++开发的所有重要知识。本书适合所有想全面学习C++开发技术的人员阅读,尤其适合没有编程基础的C++语言初学者作为入门教程,也可作为大、中院校师生和培训班的教材,对于C++语言开发爱好者,本书也有较大的参考价值。 章节目录: 第1篇 C++基础篇 第1章 C++概述 1 1.1 引言 1 1.1.1 C++的历史沿革 1 1.1.2 入门C++ 2 1.1.3 编程思想的转变 3 1.2 C++概述 4 1.2.1 C++的特征 5 1.2.2 C与C++的比较 5 1.2.3 C++的应用领域 6 1.3 C++源程序的组成 6 1.3.1 基本组成元素 7 1.3.2 标识符 8 1.3.3 保留字 8 1.3.4 符号 8 1.4 C++集成开发环境——DEV-C++ 9 1.4.1 选择C++编译器 9 1.4.2 安装DEV-C++ 10 1.4.3 DEV-C++ IDE简介 11 1.5 第一个C++程序——Hello World 11 1.5.1 创建源程序 11 1.5.2 编译运行 13 1.6 小结 14 1.7 习题 14 第2章 变量与数据类型 18 2.1 常量和变量 18 2.1.1 常量 18 2.1.2 变量 21 2.1.3 变量的定义及赋值 22 2.1.4 变量的应用示例 24 2.2 基本数据类型 25 2.2.1 基本数据类型概述 25 2.2.2 整型数据类型 26 2.2.3 浮点型数据类型 27 2.2.4 字符数据类型 29 2.2.5 布尔数据类型 30 2.3 变量的作用域 31 2.4 类转换 32 2.4.1 隐式转换 32 2.4.2 显式转换 33 2.5 小结 34 2.6 习题 34 第3章 表达式与语句 39 3.1 运算符 39 3.1.1 运算符概述 39 3.1.2 算术运算符 40 3.1.3 自增和自减运算符 42 3.1.4 赋值运算符 43 3.1.5 关系运算符 44 3.1.6 逻辑运算符 45 3.1.7 条件运算符 46 3.1.8 逗号运算符 47 3.1.9 位运算符 48 3.1.10 sizeof运算符 49 3.2 运算符的优先级和结合性 50 3.3 表达式 51 3.4 语句 53 3.4.1 空格的作用 53 3.4.2 语句块 54 3.4.3 赋值语句 55 3.4.4 空语句 56 3.5 小结 57 3.6 习题 57 第4章 流程控制结构之顺序结构 63 4.1 程序流程图 63 4.2 表达式语句 64 4.3 格式化输入/输出 65 4.3.1 标准输入流cin 65 4.3.2 标准输出流cout 66 4.3.3 输出流cerr和clog 68 4.4 格式控制函数 69 4.5 格式控制符 71 4.5.1 控制不同进制的输出 72 4.5.2 控制输出宽度 72 4.5.3 控制输出精度 73 4.6 顺序结构综合应用 74 4.7 小结 75 4.8 习题 75
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、付费专栏及课程。

余额充值