C++入门到理解阶段二基础篇(3)——C++数据类型
目录
1.数据类型概述
使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当创建一个变量时,就会在内存中保留一些空间。计算机是怎么知道这个内存空间应该开多大?因为可能存储各种数据类型(比如字符型、宽字符型、整型、浮点型、双浮点型、布尔型等)的信息,只有当明确指出当前变量或者常量的数据类型,操作系统会根据数据类型来分配内存和决定内存空间大小。
2.基本的内置类型
C++ 为程序员提供了种类丰富的内置数据类型和用户自定义的数据类型
整型
short2个字节
int 4字节
long 4字节(windos中4个字节Liunx的64位是8个字节)
long long 8字节
可以通过sizeof(数据类型或者变量)函数查看数据类型或者变量字节大小
#include <iostream>
using namespace std;
int main() {
cout <<"short大小" << +sizeof(short)<<endl;
cout <<"int大小" << + sizeof(int) << endl;
cout <<"long大小" << + sizeof(long) << endl;
cout <<"long long大小" << + sizeof(long long) << endl;
return 0;
}
实型(浮点型)
用来描述小数,有单精度float(4字节)和double双精度(8字节)两种,区别在于两者精确范围不同
程序中如何定义
对于单精度如下,定义一个单精度数a=3.14,默认小数是double的,当我们使用float接收的时候会转成float,
所以最好定义的时候,在后面加个f,直接声明就是单精度数

但是在c++中默认,小数最多只能输出6位有效数字,(可以通过配置输出更多)
int main() {
float a = 3.1415926f;
double b = 3.1415926;
cout << a;//输出3.14159
cout << b;//输出3.14159
return 0;
}
字符型
字符型变量用于存储单个字符,定义格式 char a='b';
注意:
1.显示字符型变量只能是单引号,不能是双引号
2.单引号里面只能有一个字符,不能有多个
3.c/c++中字符占一个字节
4.字符型变量只是将对应的ASCll编码放在内存中,并不是字符本身,可以通过下面程序知道
int main() {
char a = 'c';
cout << (int)a;//输出99
return 0;
}
转义字符
表示一些不能显示的ASCll字符
|
转义字符 |
意义 |
ASCII码值(十进制) |
|
\a |
响铃(BEL) |
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 |
空字符(NULL) |
000 |
|
\ddd |
1到3位八进制数所代表的任意字符 |
三位八进制 |
|
\xhh |
1到2位十六进制所代表的任意字符 |
二位十六进制 |
字符串型
用于表示一串字符,c++有以下两种用来表示字符串
c风格的字符串
#include <iostream>
using namespace std;
int main() {
char a[] = "hell word";//格式 char 字符串名[]="字符串";
cout << a;//hell word
return 0;
}
c++风格的字符串
C++ 标准库提供了 string 类类型
#include <iostream>
#include <string>//c++字符串需要加上这个头文件
using namespace std;
int main() {
string a = "hell word";//格式string a="字符串"
cout << a;
return 0;
}
布尔类型bool
bool用来表示真或假,占用内存空间为1字节,取值只有false和true
false表示假,本质是0
true表示真,本质是1(默认非0值都代表1)
int main() {
bool flag = true;
cout << flag;//1
flag = false;
cout << flag;//0
return 0;
}
扫描 关注公众号 java一号。更重要的是小猿愿成为你编程路上的一个朋友!
文章首发地址: www.javayihao.top
首发公众号: java一号
C++入门到理解阶段二基础篇(3)——C++数据类型的更多相关文章
- C++入门到理解阶段二基础篇(8)——C++指针
1.什么是指针? 为了更加清楚的了解什么是指针?我们首先看下变量和内存的关系,当我们定义了int a=10之后.相当于在内存之中找了块4个字节大小的空间,并且存储10,要想操作这块空间,就通过a这个变 ...
- C++入门到理解阶段二基础篇(6)——C++数组
概述 C++ 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合.数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量. 数组的声明并不是声明一个个单独的变量,比如 numbe ...
- C++入门到理解阶段二基础篇(5)——C++流程结构
1.顺序结构 程序从上到下执行 2.选择结构(判断结构) 判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的). C++ 编程 ...
- C++入门到理解阶段二基础篇(9)——C++结构体
1.概述 前面我们已经了解到c++内置了常用的数据类型,比如int.long.double等,但是如果我们要定义一个学生这样的数据类型,c++是没有的,此时就要用到结构体,换言之通过结构体可以帮我们定 ...
- C++入门到理解阶段二基础篇(7)——C++函数
目录 函数作用 函数定义 函数声明 函数调用 函数值传递 函数常见的样式 函数的分文件书写 函数作用 将经常使用的代码封装起来,减少重复代码 函数定义 C++ 中的函数定义的一般形式如下: retur ...
- C++入门到理解阶段二基础篇(4)——C++运算符
目录 算术运算符(进行四则运算) 赋值运算符(表达式的值赋给变量) 比较运算符(表达是比较,返回一个真值或假值) 逻辑运算符(返回表格式的结果真或假) 位运算符 杂项运算符 C++ 中的运算符优先级 ...
- C++入门到理解阶段二基础篇(2)——C++注释、变量、常量、关键字、标识符
目录 1.注释 注释作用 注释的方式 2.变量 变量基本知识 定义变量 3.常量 常量基本知识 整数常量 浮点常量 布尔常量 字符常量 字符串常量 常量定义 使用 #define 预处理器. 使用 c ...
- C++入门到理解阶段二基础篇(1)——简介与环境安装
1.C++ 简介 C++ 是一种静态类型的.编译式的.通用的.大小写敏感的.不规则的编程语言,支持过程化编程.面向对象编程和泛型编程. C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点. ...
- C++入门到理解阶段二核心篇(1)——c++面向对象概述、内存分析、引用
1.c++内存分区模型 c++程序在运行的过程中,内存会被划分为以下四个分区 代码区:程序的所有程序的二进制代码,包括注释会被放到此区 全局区:存放静态变量.全局变量.常量(字符串常量和const修饰 ...
随机推荐
- 004.Windows Server 故障转移群集 (WSFC)简介
一 WSFC 简介 1.1 WSFC 概述 “Windows Server 故障转移群集”(WSFC) 群集是一组独立的服务器,它们共同协作以提高应用程序和服务的可用性.SQL Server 2012 ...
- Hibernate session.save()实体类,主键增长问题
实体类如下: package com.wondersgroup.test.entity; import java.io.Serializable; import javax.persisten ...
- ubuntu 默认python版本切换
电脑上面有些脚本是python2的,有些是python3的,但是系统默认是python2,需要设置环境变量来进行切换. python2切换到python3: echo alias python=pyt ...
- 织女星开发板调试器升级为Jlink固件
前言 为了能使用板载的FreeLink调试器来调试RISC-V内核,我们需要把默认的CMSIC-DAP固件,升级为JLink固件,固件升级之后,通过选择使用不同的驱动程序,来支持ARM内核还是RISC ...
- 利用 chunked 类型响应实现后台请求的监听
Koa 中实现 chunked 数据传输 中介绍了如何在 Koa 中实现 Transfer-Encoding:chunked 类型的响应分片传输.这里来看一个应用场景. 假如我们想监听后台的请求,并将 ...
- Go-for循环
一.第一种情况(死循环) package main import "fmt" func main() { for{ fmt.Println("fuck") } ...
- MySQL入门——Linux下安装后的配置文件
MySQL入门——Linux下安装后的配置文件 摘要:本文主要了解了在Linux环境下安装MySQL后的配置文件的位置,以及如何创建配置文件. 查看配置文件的加载顺序 找到mysqld的路径 通过wh ...
- ABP学习资源
Abp翻译文档:https://github.com/ABPFrameWorkGroup/AbpDocument2Chinese ABP官网:https://aspnetboilerplate.com ...
- C++ 深入浅出工厂模式(进阶篇)
介绍 前文初始篇C++ 深入浅出工厂模式(初始篇),主要阐述了简单工厂模式.工厂方法模式和抽象工厂模式的结构.特点和缺陷等.以上三种方式,在新增产品时,要么修改工厂类,要么需新增具体的工厂类,说明工厂 ...
- Cobalt Strike系列教程第一章:简介与安装
Cobalt Strike是一款超级好用的渗透测试工具,拥有多种协议主机上线方式,集成了提权,凭据导出,端口转发,socket代理,office攻击,文件捆绑,钓鱼等多种功能.同时,Cobalt St ...