当前位置: 首页 > news >正文

C++ 中的数据类型

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

1 整型

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

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)

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

#include<iostream>
using namespace std;int main()
{//整型//1、短整型short num1 = 10;//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;}

日常开发中最常用的是int

2 sizeof关键字

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

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

示例:

int main() {short mum = 10;cout << "short 类型所占内存空间为:" << sizeof(short) << endl;cout << "num所占内存空间为:" << sizeof(num) << endl;cout << "int 类型所占内存空间为:" << sizeof(int) << endl;cout << "long 类型所占内存空间为:" << sizeof(long) << endl;cout << "long long 类型所占内存空间为:" << sizeof(long long) << endl;system("pause");return 0;}

3 实型(浮点型)

浮点型变量分为两种:

  1. 单精度float
  2. 双精度double

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

数据类型占用空间有效数字范围

float

4字节7位有效数字

double

8字节15~16位有效数字

示例:

int main() {//单精度float f1 =3.1415926f;cout << "f1 =" << f1 <<endl;//双精度double d1 = 3.1415926;cout << "d1 =" << d1 <<endl;// 默认情况下 输出一个小数,会显示6位有效数字//统计float和double占用的内存空间cout << "float占用内存空间为:" << sizeof(float) << endl;cout << "double占用内存空间为:" << sizeof(double) << endl;//科学计数法float f2=3e2; //3*10^2;cout << "f2 = " << f2 << endl;float f3=3e-2; //3*0.1^2;cout << "f3 = " << f3 << endl;system ("pause");return 0;}

4 字符型变量

作用:字符型变量用于显示单个字符

语法:char ch = 'a';

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

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

  • C和C++中字符型变量只占用1个字节
  • 字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元

示例:

#include<iostream>
using namespace std;int main() {//1、字符型变量创建方式char ch = 'a';cout << ch << end;//2、字符型变量所占内存大小cout << "char字符型变量所占内存:" << sizeof(char) << endl;//3、字符型变量常见错误//char ch2 = "b";//创建字符型变量的时候,要用单引号//char ch2 = 'abcdef';//创建字符型变量的时候,单引号内只能有一个字符//4、字符型变量对应ASCII编码//a---97//A---65cout << (int)ch << endl;system("pause");return 0;}

附 ASCII码表格

5 转义字符

作用:用于表示一些不能显示出来的ASCII字符

现阶段我们常用的转义字符有: \n  \\  \t

转义字符含义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位八进制
\xhh16进制转义字符3位16进制

示例:

int main() {cout << "\n" << endl;cout << "\\" << endl;cout << "\tHello" << endl;system("pause");return 0;
}

6 字符串型

作用:用于表示一串字符

两种风格

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

示例:

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

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

2.C++风格字符串:string 变量名 = “字符串值”

示例:

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

 注意:C++风格字符串,需要加入头文件#include<string>

7 布尔类型 bool

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

bool类型只有两个值:

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

bool类型占1个字节大小

示例:

int main() {bool flag = true;
cout << flag << endl;//1flag = false;
cout << flag << endl;//0cout << "size of bool =" << sixeof(bool) << endl;//1system("pause");
return 0;}

 8 数据的输入

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

关键字: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 = "hello";cout << "请输入字符串:" << endl;cin >> str;cout << str << endl;//布尔型输入bool flag = false;cout << "请输入布尔型变量:" << endl;cin >> flag;system("pause");return 0;}
http://www.lryc.cn/news/388412.html

相关文章:

  • CSS|04 复合选择器伪类选择器属性选择器美化超链接
  • 探索Batch注释的奥秘:REM与::的细微差别
  • C语言 求数列 S(n) = a + aa + aaa + …aa…a (n 个 a)的和
  • MysqlDump
  • 某安全公司DDoS攻击防御2024年6月报告
  • Centos下rpm和yum执行卡住问题(已解决)
  • python自动化办公之PyPDF2.errors.DeprecationError
  • [leetcode]first-unique-character-in-a-string 字符串中的第一个唯一字符
  • 使用uniapp.pageScrollTo方法进行页面滚动
  • 寒武纪实现高维向量的softmax进阶优化和库函数对比
  • 我的世界服务器-高版本服务器-MC服务器-生存服务器-RPG服务器-幻世星辰
  • 倒装COB显示屏与传统SMD显示屏安装方式有哪些不同?
  • elasticsearch重置密码
  • 微信小程序写一个可以滚动虚拟列表(瀑布流),减少dom渲染的优化,解决内存问题。
  • 人工与智能系统之间的交互方式
  • 【运维】如何在Ubuntu中设置一个内存守护进程来确保内存不会溢出
  • 调用基类的纯虚函数,如何知道纯虚函数会调用哪个派生类(子类)中的实现。
  • 塑造卓越企业家IP:多维度视角下的策略解析
  • Rust 跨平台-Android 和鸿蒙 OS
  • Typora导出为Word
  • 数据库被后台爆破如何解决?
  • php7.4源码安装dbase7.1.1扩展
  • OkHttp的源码解读1
  • 08:结构体
  • 喜讯!安全狗荣获“2023年网络安全技术支撑优秀单位”称号
  • android里面json操作
  • MATLAB的.m文件与Python的.py文件:比较与互参
  • 武汉星起航:自运营团队精准把握亚马逊红利,引领跨境电商新潮流
  • 嵌入式计算器模块实现
  • tomcat定时重启