【C++】C++基础知识(二)---数据类型

C++基础知识(二)

  • 1. C++数据类型
    • 1.1 整型
    • 1.2 浮点型
    • 1.3 字符型
    • 1.4 字符串型
    • 1.5 布尔型
  • 2. 转义字符
  • 3. sizeof关键字
  • 4. 数据输入

1. C++数据类型

使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。也就是说当创建一个变量的时候,就会在内存中保留一些空间。

C++中在定义变量或者是常量的时候必须指定其数据类型,否则是无法给变量分配内存的。数据类型存在的意义: 给变量分配合适的内存空间。

C++中常用的几种数据类型如下表所示:

数据类型关键字
整型int
浮点型float
双浮点型double
字符型char
字符串型string
布尔型bool
无类型void

1.1 整型

C++基本整型有:

类型所占字节数表示范围
short(短整型)2-2^15 ~ 2^15-1
int(整型)4-2^31 ~ 2^31-1
long(长整型)4(windows下)、4或8(Linux下,32位系统为4,64位系统为8)-2^31 ~ 2^31-1 or -2^63 ~ 2^63-1
long long(长长整型)8-2^63 ~ 2^63-1
  • 代码演示
#include 
using namespace std;int main() {//1、short(短整型) 范围:-2^15-2^15-1[2字节]short a = 10;cout << a << endl;cout << "short类型占用的内存空间为:" << sizeof(short) << endl;//2、int(整型) 范围:-2^31-2^31-1[4字节]int b = 20;cout << b << endl;cout << "int类型占用的内存空间为:" << sizeof(int) << endl;//3、long(长整型) 范围:-2^31-2^31-1[window下4字节;Linux下4字节(32位),8字节(64位]long c = 30;cout << c << endl;cout << "long类型占用的内存空间为:" << sizeof(long) << endl;//4、long long(长长整型) 范围:-2^63-2^63-1[8字节]long d = 40;cout << d << endl;cout << "long long类型占用的内存空间为:" << sizeof(long long) << endl;system("pause");return 0;
}

输出结果如下:
在这里插入图片描述

1.2 浮点型

作用:用于表示小数

C++浮点型有:

类型所占字节数表示范围十进制有效位数
float(单精度类型)4-2^31 ~ 2^31-17
double(双精度类型)8-2^63 ~ 2^63-115

注意: float和double浮点型数据的区别在于表示的有效数字范围不同。

  • 代码演示
#include 
using namespace std;int main() {//默认情况下,输出一个小数,会显示6位有效数字。//1、float(一般在初始值后面加一个f,这样得到的数就是float类型的;//   若不加f,得到的数编辑器默认为double类型,此时需要将数据类型进行一个转换)float num1 = 3.1415926f;cout << "num1 = " << num1 << endl;cout << "float 类型占用的内存空间为: " << sizeof(float) << endl;//2、doubledouble num2 = 3.1415926;cout << "num2 = " << num2 << endl;cout << "double 类型占用的内存空间为: " << sizeof(double) << endl;//科学计数法float f1 = 3e2; //3e2 = 3 * 10^2cout << "f1 = " << f1 << endl;float f2 = 3e-2; //3e-2 = 3 * 10^-2cout << "f2 = " << f2 << endl;system("pause");return 0;
}

输出结果:
在这里插入图片描述

1.3 字符型

字符型变量用于显示单个字符,C/C++中字符型变量只占用一个字节,字符型变量并不是把字符本身放到内存中存储,而是把对应的ASCII编码放到内存当中存储。

定义字符型变量时需注意:

  1. 定义字符型变量只能用单引号,不能用双引号
  2. 定义字符型变量时,单引号内只能有一个字符,多与一个字符就会出现警告或者是错误

常见字符及对应的ASCII编码:

字符十进制二进制十六进制
A650100 000040
B660100 000141
C670100 001042
X880101 100058
Y890101 100159
Z900101 10105A
a970110 000161
b980110 001062
c990110 001163
x1200111 100078
y1210111 100179
z1220111 10107A

注意: 对于常见字符对应的ASCII编码,都是有一定的规律的,只需要知道部分字符的编码即可推测其它字符所对应的编码。

  • 代码演示
#include 
using namespace std;int main() {char ch = 'A';cout << "ch字符为:" << ch << endl;cout << "char类型占用内存: " << sizeof(ch) << " 字节" << endl;//char ch = "a"; //报错,1、在显示字符型变量时,用单引号将字符括起来,不能用双引号//char ch = 'abcde'; //报错,2、单引号内出现4个以上字符时将会报错,超过了int类型的内存4字节//char ch = 'abcd'; //警告,3、输出最后一个字节(一个字符)//将字符转换为对应的ASCII编码(a--97;A--65)cout << (int)ch << endl;//可以直接用ASCII编码给字符型变量赋值ch = 97;cout << ch << endl;system("pause");return 0;
}

输出结果为:
在这里插入图片描述

1.4 字符串型

字符串数据类型用来表示一串字符。

字符串的定义方式有:

  1. C语言风格字符串
    语法:char 变量名[ ] = “字符串值”
  2. C++引入的string类类型
    语法:string 变量名 = “字符串值”
    在使用这种方式定义字符串变量时需要包含一个如下所示的头文件
#include 
  • 代码演示
#include 
using namespace std;
#include  //使用C++风格的字符串时需要包含此头文件
//用于表示一串字符int main() {//1、C语言风格字符串:char 变量名[] = "字符串值"char str1[] = "hello world!";cout << str1 << endl;//2、C++风格字符串:string 变量名 = "字符串值"string str2 = "hello world!!!";cout << str2 << endl;system("pause");return 0;
}

输出结果:
在这里插入图片描述

1.5 布尔型

布尔数据类型代表真或假的值,占用一个字节长度。
布尔类型的变量值为非零时,返回的就是1;相反,只有当布尔类型的变量值为0时,返回的才是0。
布尔变量可以用来表示逻辑运算、关系运算以及开关变量的值。

  • 代码演示
#include 
using namespace std;int main() {bool flag = true;bool flg = 3;cout << flag << "\t" << flg << endl;bool flag1 = false;bool flg1 = 0;cout << flag1 << "\t" << flg1 << endl;cout << "bool类型占用的内存空间为: " << sizeof(bool) << endl;system("pause");return 0;
}

输出结果:
在这里插入图片描述

2. 转义字符

C++中常用转移字符如下:

字符形式含义
\a响铃
\n换行
\t水平制表符(跳到下一个Tab位置)
\b退格,将当前位置移到前一列
\r回车,将当前位置移到本行开头
\反斜杠字符“\”
单撇号
"双引号
\0空字符
  • 代码演示
#include 
using namespace std;int main() {//转义字符:\n换行符cout << "helloworld!\n" << endl;//转义字符:\\反斜杠cout << "helloworld!\\" << endl;//转义字符:\t水平制表符。可以让输出的数据规整对齐cout << "111\thelloworld!" << endl;cout << "11111\thelloworld!" << endl;cout << "1111111\thelloworld!" << endl;system("pause");return 0;
}

输出结果:
在这里插入图片描述

3. sizeof关键字

作用:利用sizeof关键字可以求某一特定的变量、指针、结构体、枚举、联合体等所占内存空间的大小。

  • 代码演示
#include 
using namespace std;
#include //语法:sizeof(数据类型/变量)
//short(2字节) <= int(4字节) <= long(4字节or8字节) <= long long(8字节)
//float(4字节) < double(8字节)
//char(1字节) = bool(1字节) < string(4字节)int main() {//1、short(短整型)short num1 = 10;cout << "short 类型所占的内存空间为: " << sizeof(num1) << endl;//2、int(整型)int num2 = 20;cout << "int 类型所占的内存空间为: " << sizeof(num2) << endl;//3、long(长整型)long num3 = 30;cout << "long 类型所占的内存空间为: " << sizeof(num3) << endl;//4、long long(长长整型)long long num4 = 40;cout << "long long 类型所占的内存空间为: " << sizeof(num4) << endl;//5、float(单精度浮点型)float num5 = 3.14159f;cout << "float 类型所占的内存空间为: " << sizeof(num5) << endl;//6、double(双精度浮点型)double num6 = 3.1415926;cout << "double 类型所占的内存空间为: " << sizeof(num6) << endl;//7、char(字符型)char ch = 'a';cout << "char 类型所占的内存空间为: " << sizeof(ch) << endl;//8、string(字符串类类型)string str = "abcde";cout << "string 类型所占的内存空间为: " << sizeof(str) << endl;//9、bool(布尔类型)bool FLAG = true;cout << "bool 类型所占的内存空间为: " << sizeof(FLAG) << endl;system("pause");return 0;
}

输出结果:
在这里插入图片描述

注意:
字符串string:
string在C++中属于类类型,不是基本数据类型,类不能计算其在内存中的大小,非要用>sizeof(string)计算的话,一般算出来的结果为sizeof(string) = 4byte,若字符串中内容较多时,算出来的内存就不>是其真实大小。

4. 数据输入

C++中cin关键字用于从键盘来获取数据。其使用方式为:cin >> 变量名

  • 代码演示
#include 
using namespace std;
#include int main() {int a = 10;cout << "请输入整型变量: " << endl;cin >> a;cout << "a = " << a << endl;double d = 10.1;cout << "请输入实型变量: " << endl;cin >> d;cout << "d = " << d << endl;char ch = 'a';cout << "请输入字符型变量: " << endl;cin >> ch;cout << "ch = " << ch << endl;string str = "hello";cout << "请输入字符串型变量: " << endl;cin >> str;cout << "str = " << str << endl;bool b = 0;cout << "请输入bool型变量: " << endl;cin >> b;cout << "b = " << b << endl;system("pause");return 0;
}

输出结果:
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部