C++青少年简明教程:C++数据类型
数据类型定义了变量可以存储哪些类型的数据,以及对这些数据可以进行哪些操作。C++提供了丰富的数据类型供开发者使用。
下面是 C++ 中常见的数据类型:
★整型(int):整数类型的数据用于表示整数值。不同的整数类型在占用的存储空间大小上有所区别。整数运算的基本操作(例如加法、减法等)。例如:
int age = 10;
int score = 90;
整数类型及数值范围:
short:-32768 到 32767
unsigned short:0 到 65535
int:-2147483648 到 2147483647
unsigned int:0 到 4294967295
long:-2147483648 到 2147483647
unsigned long:0 到 4294967295
long long:-9223372036854775808 到 9223372036854775807
unsigned long long:0 到 18446744073709551615
★浮点型(float和double):用于表示带有小数部分的数值,浮点数类型在计算机中的存储方式是近似值,因此在使用时需要注意精度问题,小数点后的位数。例如:
float weight = 34.5;
double height = 156.78;
浮点数类型及数值范围:
单精度(float):约 -3.4e38 到 3.4e38(精度为6位小数)
双精度(double):约 -1.7e308 到 1.7e308(精度为15位小数)
长双精度(long double):约 -1.7e308 到 1.7e308(精度为15位小数)
★字符型(char):用于表示单个字符。说明字符类型的数据表示和范围。讲解ASCII码和字符常量的概念,以及通过字符型变量可以存储字符数据。例如:
char grade = 'A';
在C++中,ASCII编码字符可以进行计算。在计算时,可以使用字符的 ASCII 值进行加、减、乘等运算,从而进行字符之间的操作。例如:
char c = 'B';
int asciiValue = c - 1; // 将字符'B'的ASCII值减1
char result = asciiValue; // 将结果转换回字符
cout << result; // 输出字符'A'
★布尔型(bool):布尔类型在计算机内存中占用一个字节,只有两种值(true或false)例如:
bool isTrue = true; // 布尔型变量,存储值为真
★枚举类型:
enum:用于定义一组命名的常量值。
★数组类型:
数组:用于存储相同类型的多个值。
★指针类型:
指针:用于存储变量的内存地址。
★结构体类型:
struct:用于定义一种包含多个不同类型成员的复合数据类型。
★类类型
class:类似于结构体,但具有更多的面向对象功能。
★字符串类型
C风格字符串:
char*:指向以null结尾的字符数组的指针,通常用于存储字符串。
例如:const char* str = "Hello, World!";
C++标准库中的string类:需要包含头文件 <string>。例如:
string name = "Alice"; // 字符串型变量,存储名字 "Alice"
string message = "Hello, World!";
特别提示,在使用C风格字符串时,需要注意字符串的长度和边界条件,避免造成溢出等问题。而使用string类则不需要过多考虑这些细节。
将下面的代码在电脑上输入并运行一下,可以查看到你的电脑上C++各种类型的整数都占多少字节呢?
源码如此下:
#include <iostream>
using namespace std;
int main() {
int a;
short b;
long c;
long long d;
cout << "int 整数长度:" << sizeof(a) << endl;
cout << "short 整数长度:" << sizeof(b) << endl;
cout << "long 整数长度:" << sizeof(c) << endl;
cout << "long long 整数长度:" << sizeof(d) << endl;
return 0;
}
运行效果:
下面是查看实型(浮点型)占多少字节程序源码:
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
// 创建一个双精度实型变量
double a = 3.912348239293;
// 创建一个单精度实型变量
float b = 3.912348239293f; //注意最后一位
// 打印两个变量
cout << "双精度:" << a << endl;
cout << "单精度:" << b << endl;
cout << setprecision(13); // 包含小数点和小数点后共13位。
cout << "打印出小数13位:" << a << endl;
return 0;
}
数据类型定义了存储在计算机内存中的数据的种类以及这些数据可以进行的操作——定义了数据的种类、表示方式、支持的操作以及内存使用方式。例如,整数类型(如 int、short、long)表示的是整数值,而浮点类型(如 float、double)表示的是带有小数点的数值。字符类型(如 char)则用于存储字符(通常是 ASCII 或 Unicode 编码)。每种数据类型都支持一组特定的操作。例如,可以对整数进行算术运算(如加法、减法、乘法、除法),但对字符进行算术运算可能没有意义。通过限制可以对变量执行的操作,数据类型有助于减少错误并增强代码的可读性。数据类型决定了变量在内存中占用多少空间。例如,int
类型在大多数现代系统上通常占用 4 字节(32 位)或 8 字节(64 位)的存储空间,而 char
类型通常只占用 1 字节。通过选择适当的数据类型,可以更有效地管理内存使用。在编译时,编译器会检查变量和表达式的类型,以确保它们之间的操作是有效的。如果尝试对不兼容的数据类型执行操作(如将整数与字符串相加),编译器将报告错误。这有助于在代码执行之前捕获潜在的错误。合适的数据类型可以增加程序的效率。例如,选择 float 还是 double 来存储浮点数,取决于对精度的需求与对性能的考虑。
本节仅对数据类型做概要介绍,初学者大体了解即可,后续还将在适当的地方介绍。