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

C++语言程序设计——02 变量与数据类型

目录

  • 一、变量与数据类型
    • (一)变量的数据类型
    • (二)变量命名规则
    • (三)定义变量
    • (四)变量赋值
    • (五)查看数据类型
  • 二、ASCII码
  • 三、进制表示与转换
    • (一)不同进制表示
    • (二)进制转换方法

一、变量与数据类型

(一)变量的数据类型

类型特点
int整数类型(整型)
long long长整型
float单精度浮点型
double双精度浮点型
char单字符/小整数类型
string字符串类型
bool布尔值类型
void无类型

一般来说,可以直接使用字符串类型string不用加头文件< string >,因为有的编译器< iostream >中通常包含,不过有的旧版本编译器不一定包含,可能报错无法编译成功:

#include <string>

总结一下,上面的数据类型中,int就是整数,float和double就是小数,而string是字符串(中文、英文、符号等),同时要注意float和double的区别。

类型特点精度占用空间
float单精度浮点型6~7位小数4字节(byte)
double双精度浮点型15-16位小数8字节(byte)

(二)变量命名规则

变量可以比作一个盒子,可以装数据,同时它也有一个名字,即变量名。但是,变量的命名有一个严格的规则,如下:

① 变量名称不能是c++中的关键字、标准库函数,例如,if、else、true、false等。
② 变量名称可以由英文字母、数字及下划线(_)组成,但不能以数字开头。
③ 严格遵循大小写。

(三)定义变量

1、定义一个变量:
根据刚刚学到的变量数据类型,我们知道,在定义变量时候要首先定义变量的类型,然后再写上变量的名字,定义变量的具体方法如下:

数据类型 变量名字;               //不要忘记英文冒号了!!

2、定义多个变量:
也可以一次定义多个变量,通过英文逗号隔开就好,要注意这样定义的变量是属于同一个数据类型的,如下格式:

数据类型 变量名字1,变量名字2,……;               //不要忘记英文冒号了!!

3、定义变量的区间:
另外,这里要注意一下,定义变量应该在哪里定义?因为在主函数int main()里面定义和其他地方定义的意思是不一样的。

【一句话总结,例如,自己家的电脑和外面网吧的电脑】
在主函数外面定义的变量就是外面网吧的电脑,其他人都可以使用,是公共的,其他人(所有函数)都可以使用。
在这里插入图片描述
在主函数里面定义的变量就是自己家的电脑,是我的电脑,只有我(主函数里面的代码)才能使用,其他人用该电脑无法打游戏。
在这里插入图片描述

(四)变量赋值

一定要注意,先定义函数,然后再赋值!不过也可以将定义和赋值一起写,简化一下,赋值是通过在变量名字后面写一个等于号,然后后面写内容。赋值操作并不会改变变量的数据类型。

#include<iostream>
using namespace std;

int main()
{
    int a;
    a = 1;
    int A = 2;
    cout << a << endl;
    cout << A;
    return 0;
}

运行结果如下:
在这里插入图片描述
可以一次性定义多个同类型的变量,也可以一次性cout输出几个变量,如下:

#include<iostream>
using namespace std;

int main()
{
    int a=1,b=2,c=3,d=4;
    cout << a << b << c << d;
    return 0;
}

运行结果如下:
在这里插入图片描述
可以实现一个简单的两个整数相加计算器功能,如下:

#include<iostream>
using namespace std;

int main()
{
    int a=1,b=2,c;
    cout << "a+b的结果是:\n"<< a + b ;
    return 0;
}

运行结果如下:
在这里插入图片描述
也可以定义变量来输出字符串,不过记得要加头文件< cstring >,如下:

#include<iostream>
#include<cstring>
using namespace std;

int main()
{
    int a = 1;
    float b = 2.566666;
    string c = "今天是2025/3/30 !";
    cout << "a和b的值是:" << a << "\n" << b << endl;
    cout << c;
    return 0;
}

运行结果如下:
在这里插入图片描述

(五)查看数据类型

如果我们需要查看我们创建变量的数据类型,就需要先导入头文件< typeinfo >,然后通过typeid().name()来查看,typeid()括号里面写变量的名称。例如,下面代码,定义了七个数据类型,通过该方法查看并cout输出:

#include<iostream>
#include<cstring>
#include <typeinfo>
using namespace std;

int main()
{
    int a = 1;
    long long b = 6666666666;
    float c = 0.2;
    double d = 0.00000000003;
    char e = 'A';
    string f = "今天是2025年3月30日!";
    bool g = true;
    
    cout << "a的类型是:" << typeid(a).name() << "\n";
    cout << "b的类型是:" << typeid(b).name() << "\n";
    cout << "c的类型是:" << typeid(c).name() << "\n";
    cout << "d的类型是:" << typeid(d).name() << "\n";
    cout << "e的类型是:" << typeid(e).name() << "\n";
    cout << "f的类型是:" << typeid(f).name() << "\n";
    cout << "g的类型是:" << typeid(g).name() << "\n";
    return 0;
}

运行结果如下:
在这里插入图片描述
所以这里,我们可以总结一下通过typeid().name()所得到的数据类型:

类型特点名称
int整数类型(整型)i
bool布尔值类型b
char字符串类型c
long long长整型x
float单精度浮点型f
double双精度浮点型d
string字符串类型Ss

二、ASCII码

简单的来说,ASCII码是计算机中的「字符字典」,相当于给每个常用的字母、符号都编了号,从而让计算机能理解。因为,计算机只认识0和1(二进制),所以ASCII码可以帮我们把字母等变成二进制数字。

ASCII码一共定义了128个字符(后来扩展成256个),主要包含以下内容:
①英文字母(大小写)
②数字0~9
③标点符号(!@#¥%*等)
④控制字符(回车、换行等)
在这里插入图片描述
在c++中,我们使用char()int()的显式类型转换,进行ASCII字符与对应编码值之间的转换,如下:

类型作用
int(数字)数字 → 字符
char(字符)字符 → 数字

例如,我们都知道大写英文字母 A ,而它的ASCII码为65,可以通过char()将数字转换为字符,同理,我们将字符 A 转换为对应的ASCII码,如下代码:

#include<iostream>
using namespace std;

int main()
{
    int a = 100;
    char b = 'A';
    cout << "变量a对应的字符:" << char(a) << endl;
    cout << "变量b的ASCII码是:" << int(b);
    return 0;
}

运行结果如下:
在这里插入图片描述

三、进制表示与转换

(一)不同进制表示

一般我们用的默认是十进制(逢十进一),如果我们想表示其他进制
表示不同进制,需要在数字前添加别的东西,才能表示该进制的写法。例如,以15为例子,如下:

类型写法备注
十进制15无前缀
八进制017加前缀【0】
二进制0b1111加前缀【0b】
十六进制0xF加前缀【0x】

(二)进制转换方法

1、输出为十进制
输出为十进制是通过控制符dec(decimalism,十进制)来实现的,例如以下代码:

#include<iostream>
using namespace std;

int main()
{
    cout << "017八进制转十进制输出:" << dec << 017 << endl;
    cout << "0b1111二进制转十进制输出:" << dec << 0b1111 << endl;
    cout << "0xF十六进制转十进制输出:" << dec << 0xF << endl;
    return 0;
}

运行结果如下:
在这里插入图片描述
2、输出为八进制
输出为八进制是通过控制符oct(Octal Q,八进制)来实现的,例如以下代码:

#include<iostream>
using namespace std;

int main()
{
    cout << "15十进制转八进制输出:" << oct << 15 << endl;
    cout << "0b1111二进制转八进制输出:" << oct << 0b1111 << endl;
    cout << "0xF十六进制转八进制输出:" << oct << 0xF << endl;
    return 0;
}

运行结果如下:
在这里插入图片描述
3、输出为十六进制
输出为八进制是通过控制符hex(hexadecimal,十六进制)来实现的,例如以下代码:

#include<iostream>
using namespace std;

int main()
{
    cout << "15十进制转十六进制输出:" << hex << 15 << endl;
    cout << "0b1111二进制转十六进制输出:" << hex << 0b1111 << endl;
    cout << "017八进制转十六进制输出:" << hex << 017 << endl;
    return 0;
}

运行结果如下:
在这里插入图片描述
4、输出为二进制
输入二进制需要先导入一个 < bitset > 头文件,然后通过bitset来实现,如果是要转换为八位,即bitset<位数>(数字)。下面是示例代码:

#include<iostream>
#include<bitset> 
using namespace std;

int main()
{
    cout << "15十进制转二进制输出:" << bitset<8>(15) << endl;
    cout << "017八进制转二进制输出:" << bitset<8>(017) << endl;
    cout << "0xF十六进制转二进制输出:" << bitset<8>(0xF) << endl;
    return 0;
}

运行结果如下:
在这里插入图片描述

相关文章:

  • 构建灵活的接口抽象层:支持多种后端数据存取的实战指南
  • [250412] OpenSSH 10.0 发布,移除DSA算法,sshd默认禁用有限域DH,并分离认证代码
  • Koordinator-nodeMetricController
  • 消息中间件篇——RabbitMQ,Kafka
  • ubuntu 安装pyllama教程
  • vue项目调用netcore webapi接口提示:400 Bad Request的解决
  • 英伟达Llama-3.1-Nemotron-Ultra-253B-v1语言模型论文快读:FFN Fusion
  • DAY07:【pytorch】模型构建
  • 07-并发线程 面试题-mk
  • LeetCode 每日一题 2025/4/7-2025/4/13
  • 算法题(123):回文日期
  • Seleuinm之javascript语句执行
  • React Hooks: useRef,useCallback,useMemo用法详解
  • Python中内置的数据结构类型详析(内置数据容器)
  • 【Java集合】HashSet源码深度分析
  • [python]从whl文件名认识支持python版本和操作系统
  • 第二十二: go与k8s、docker相关编写dockerfile
  • 策略模式实现 Bean 注入时怎么知道具体注入的是哪个 Bean?
  • Java中的static都能用来修饰什么?
  • 【强化学习-蘑菇书-2】通过具体的例子来学习如何与 Gym 库进行交互——小车上山(MountainCar-v0)
  • 什么是模板建站/seo实战培训费用
  • 推广网站的步骤/seo搜索引擎优化方案
  • 河南省建设厅网站首页/免费的推广软件下载
  • 美国地接公司怎么在中国网站做推广/找一个免费域名的网站
  • 石家庄网站建设智美/品牌营销策划机构
  • 郑州网站建设维护公司/关键词优化系统