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

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

1. 整型

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

C++中能够表示整型的类型有以下几种方式,区别在于所占内存空间不同:

数据类型 占用空间 取值范围
short 2字节 (-215~215-1)
int 4字节 (-231~231-1)
long Windows为4字节,Linux为4字节(32位)8字节(64位) (-231~231-1)
long long 8字节 (-263~263-1)
#include<iostream>
using namespace std; int main(){
//短整形(-32768~32767)
short num1 = 10;
//short num1 = 32768时,输出-32768
//整型
int num2 = 10;
//长整型
long num3 = 10;
//长长整型
long long num4 =10; cout << "num1 = " << num1 << endl;
cout << "num2 = " << num1 << endl;
cout << "num3 = " << num1 << endl;
cout << "num4 = " << num1 << endl; system("pause"); return 0;
}

2. sizeof关键字

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

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

#include<iostream>
using namespace std; int main(){
//整型:short(2) int(4) long(4) long long(8)
//可以利用sizeof求出数据类型占用大小 short num1 = 10;
cout << "short占用内存空间为:" << sizeof(num1/*short*/) << endl; int num2 = 10;
cout << "int占用内存空间为:" << sizeof(num2/*int*/) << endl; long num3 = 10;
cout << "long占用内存空间为:" << sizeof(num3/*long*/) << endl; long long num4 = 10;
cout << "long long占用内存空间为:" << sizeof(num4/*long long*/) << endl; return 0;
}

3. 实型(浮点型)

作用:用于表示小数

浮点型分为一下两种,区别在于有效数字的范围不同

数据类型 占用空间 有效数字范围
float(单精度) 4字节 7位有效数字
double(双精度) 8字节 15~16位有效数字
#include<iostream>
using namespace std; int main(){
//1.单精度 float
//2.双精度 double
//默认情况下输出一个小数,会显示出6位有效空间 float f1 = 3.14f; //默认双精度,加f表明为单精度
cout << "f1 = " << f1 << endl; double d1 = 3.14;
cout << "d1 = " << 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. 字符型

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

语法:char ch = 'a';

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

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

#include<iostream>
using namespace std; int main(){
//1.字符型变量创建方式
char ch = 'a';
cout << ch << endl; //2.字符型变量所占内存大小
cout << "" << sizeof(char) << endl; //3.字符型变量常见错误 //4.字符型变量对应ASCⅡ编码
//a - 97
//A - 65
cout << (int)ch << endl; return 0;
}

5. 转义字符

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

现阶段常用的转义字符有:\n 换行 \\反斜杠 \t水平制表符(反斜杠)

cout << "aaa\thello" << endl //aaa+\t为八个字符

6. 字符串型

作用:用于表示一串字符

两种风格:

  1. C语言风格字符串:char 变量名[] = "字符串值"
#include<iostream>
using namespace std; int main(){
char str[] = "hello world";
cout << str << endl; return 0;
}

注意:方括号[]

  1. C++风格字符串:string 变量名 = "字符串值"
#include<iostream>
#include<string>
using namespace std; int main(){
string str2 = "hello world";
cout << str2 << endl; return 0;
}

注意:包含头文件

7. 布尔类型 bool

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

bool数据类型占一个字节大小

8. 数据的输入

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

关键字:cin

语法:cin >> 变量

#include<iostream>
using namespace std; int main(){
int a = 0;
cout << "给int a赋值:" << endl;
cin >> a;
cout << "int a:" << endl; return 0;
}

C++学习(2)—— 数据类型的更多相关文章

  1. js学习之数据类型

    js学习之数据类型 基础类型:number string boolean null undefined 引用类型:object array function undefined值是派生自null值的( ...

  2. Go语言学习之数据类型

    ### Go语言学习之数据类型 数据类型的转换 1.Go语言不允许隐式类型转换(显示转换才可以) 2.别名和原有类型也不能进行隐式类型转换 例子: func TestImplicit(t *testi ...

  3. python学习6—数据类型之集合与字符串格式化

    python学习6—数据类型之集合与字符串格式化 1. 使用id()可以查看一个变量的内存地址: name = 'alex' id(name) 2. 进制转换 十进制转换为二进制等: a = 10 # ...

  4. MySQL学习笔记--数据类型

    一.数据类型(内容参考<SQL学习指南>)不完整 1.文本类型 文本类型 最大字节数 tinytext 255 text 65535 varchar 65536 mediumtext 16 ...

  5. C语言基础学习基本数据类型-变量的输出与输入

    变量的输出 变量如何输入输出呢?实际上,在这之前你已经使用过输出语句(printf语句)了,我们可以使用printf来执行输出. printf语句的使用方法如下: printf(格式控制字符串, 数据 ...

  6. C语言基础学习基本数据类型-变量和常量

    变量和常量 什么是变量和常量?有些数据在程序运行前就预先设定,并在运行过程中不发生变化,称之为常量:有些数据在程序运行中可能发生变化或被赋值,称之为变量. 使用变量前必须先声明一个变量.变量定义的语法 ...

  7. Redis 学习(二) —— 数据类型及操作

    Redis支持string.list.set.zset.hash等数据类型,这一篇学习redis的数据类型.命令及某些使用场景. 一.String,字符串 字符串是 Redis 最基本的数据类型.一个 ...

  8. MySQL学习4 - 数据类型一

    介绍 一.数值类型 二.浮点型 验证三种类型建表 验证三种类型的精度 三.日期类型 综合练习: 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选 ...

  9. python学习Day7 数据类型的转换,字符编码演变历程

    一.数据类型的转换 1.1.1.字符转列表:lst1 = str.split(默认空格,也可依据指定字符分界),若无分界字符,就没法拆分,这时可以直接放进list转成列表 ----> s1 = ...

  10. Java之基础学习(数据类型、运算符、分支语句和循环语句)

    在工作用得比较多的是shell和python编程,对于java以前也学习过,使用很少,这次借朋友推荐的java视频教程来温习下. 也是因为现在很多开源测试工具使用java编写的,学习一下更有助于测试工 ...

随机推荐

  1. spark org.apache.spark.ml.linalg.DenseVector cannot be cast to org.apache.spark.ml.linalg.SparseVector

    在使用 import org.apache.spark.ml.feature.VectorAssembler 转换特征后,想要放入 import org.apache.spark.mllib.clas ...

  2. Mac home目录下,创建文件夹,修改权限

    http://php-note.com/article/detail/35e782e145a94042923946cb142b5cd1 1.关闭 SIP 2.sudo mount -uw /

  3. 【Spring Boot学习之八】发布打包

    环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2 一.打jar类型1.指定主程序入口,否则运行报错:没有主清单属性pom.xml: <build> < ...

  4. windows系统常用命令

    dir 指定要列出的驱动器,显示当前文件夹下的文件   /?可显示所有命令 显示当前路径下的所有文件的绝对路径,包含子文件夹中的内容 D:\test > dir /b /s /o:n /a:a  ...

  5. JDK8从永生代到元数据区

    永生代 永生代默认的最大内存大小是在32位JVM上为64MB, 在64位JVM上为82MB.可以通过-XX:PermSize=[size]和-XX:MaxPermSize=[size]来调整. 永生代 ...

  6. springboot异步线程(二)

    前言 本篇文章针对上篇文章springboot异步线程,有一位大佬在评论中提出第一点是错误的,当时看到了这个问题,最近刚好有空,针对第一点的问题去搜索了不少的文章: 问题 我在文章中第一点去验证:Sc ...

  7. Go语言【学习】defer和逃逸分析

    defer 什么是defer? defer是Go语言的一中用于注册延迟调用的机制,使得函数活语句可以再当前函数执行完毕后执行 为什么需要defer? Go语言提供的语法糖,减少资源泄漏的发生 如何使用 ...

  8. cloudera cdh6.3 离线安装 经典大数据平台视频教程(含网盘下载地址)

    cdh6.3企业级大数据视频教程 链接:https://pan.baidu.com/s/1bLGrIwzpFQB-pQRb6KOmNg 提取码:i8h8 系统和软件版本1,操作系统:Centos7.6 ...

  9. Vue的router-link标签

    在vue1.0版本的超链接标签还是原来的a标签,链接地址由v-link属性控制 而vue2.0版本里超链接标签由a标签被替换成了router-link标签,但最终在页面还是会被渲染成a标签的 至于为什 ...

  10. KindEditor 简单使用笔记

    1.在官网下载最新版本  http://kindeditor.net/demo.php 2.在页面中加上如下代码 <textarea id="editor_id" name= ...