蓝桥杯零基础到获奖-第3章 C++ 变量和常量

蓝桥杯零基础到获奖-第3章 C++ 变量和常量


文章目录

  • 一、变量和常量
    • 1.变量的创建
    • 2.变量初始化
    • 3.变量的分类
    • 4.常量
      • 4.1 字⾯常量
      • 4.2 #define定义常量
      • 4.3 const 定义常量
      • 4.4 练习
        • 练习1:买票https://www.nowcoder.com/practice/0ad8f1c0d7b84c6d8c560298f91d5e66
        • 练习2:A + B 问题https://www.luogu.com.cn/problem/B2007
        • 练习3:鸡兔同笼


一、变量和常量

1.变量的创建

了解清楚了类型,我们使⽤类型做什么呢?类型是⽤来创建变量的。

什么是变量呢?把经常变化的值称为变量,不变的值称为常量。

变量创建的语法形式是这样的:
data_type name;
| |
| |
数据类型 变量名

int age; //整型变量
char ch; //字符变量
double weight; //浮点型变量

变量的命名规则遵循以下原则:
• 变量名只能由字⺟、数字和下划线组成,且必须以字⺟或下划线开头。

• 变量名不能以纯数字开头,也不能包含特殊字符,如空格、连字符等。

• 变量名不能使⽤语⾔的关键字,如 int、char、if等。

• 变量名应具有意义,有助于理解变量的含义和⽤途。

• 变量名应简短明了,避免使⽤过⻓的名称。

• 变量名应区分⼤⼩写,例如 myVariable 和 myvariable 被视为两个不同的变量。

2.变量初始化

变量在创建的时候就给⼀个初始值,就叫初始化。

int age = 18;
char ch = 'w';
double weight = 48.0;
unsigned int height = 100;

3.变量的分类

• 全局变量:在⼤括号外部定义的变量就是全局变量全局变量的使⽤范围更⼴,整个⼯程中想使⽤,都是有办法使⽤的

• 局部变量:在⼤括号内部定义的变量就是局部变量局部变量的使⽤范围是⽐较局限,只能在⾃⼰所在的局部范围内使⽤的

#include <iostream>
using namespace std;
int global = 2023; //全局变量
int main()
{int local = 2018; //局部变量cout << local << endl;cout << global << endl;return 0;
}

如果局部和全局变量,名字相同呢?

#include <iostream>
using namespace std;
int n = 1000;
int main()
{int n = 10;cout << n << endl; //打印的结果是多少呢?return 0;
}

其实当局部变量和全局变量同名的时候,局部变量优先使⽤。

• 未初始化状态下的全局变量和局部变量

//未初始化的局部变量
#include <iostream>
using namespace std;
int main()
{//局部变量int a;char c;float f;double d;cout << "int:" << a << endl;cout << "char:" << c << endl;cout << "float:" << f << endl;cout << "double:" << d << endl;return 0;
}
//未初始化的全局变量
#include <iostream>
using namespace std;
//全局变量
int a;
char c;
float f;
double d;
int main()
{cout << "int:" << a << endl;cout << "char:" << c << endl;cout << "float:" << f << endl;cout << "double:" << d << endl;return 0;
}

在Dev-C++下:
局部变量: 全局变量:
在这里插入图片描述
在这里插入图片描述


4.常量

常量就是不能被改变的值,通常我们会使⽤三种常量:
• 字⾯常量
• #define 定义的常量
• const 定义的常量
下⾯分别介绍⼀下。

4.1 字⾯常量

整型常量: 100,-5,0,0x123 整型常量⼀般可以写成10进制、8进制、16进制。
10进制数字,如: 6、17、22、123
8进制数字,⼀般是数字0开头的,⽐如: 012 , 016
16进制数字,⼀般是0x开头的数字,⽐如: 0x123 , 0xFF
字符常量: ‘a’
浮点型常量: 3.14 , 1E6 (科学计数法的形式)


4.2 #define定义常量

有时候也会使⽤ #define 来定义常量,⽐如:

代码举例:

#include <iostream>
using namespace std;
#define M 100
#define CH 'x'
#define PI 3.14159
int main()
{cout << M << endl;cout << CH << endl;cout << PI << endl;return 0;
}

这⾥定义的 M、CH、PAI 都是常量,可以直接使⽤,但是不能被修改。
使⽤ #define 定义常量的时候是不关注类型的,只关注常量的名字叫啥,常量的值是啥,编译在处
理这种常量的时候就是直接替换,在出现常量名字的地⽅,通通替换成常量的内容。
上⾯的代码被编译器替换后就是:

#include <iostream>
using namespace std;
int main()
{cout << 100 << endl;cout << 'x' << endl;cout << 3.14159 << endl;return 0;
}

4.3 const 定义常量

除了上⾯的⽅式之外,C++中还可以使⽤ const 来定义常量,这种常量会有具体的类型。⽐#define 定义常量更加严谨。语法形式如下:

⽐如:const double PI = 3.14159;

使⽤⼀下:

#include <iostream>
using namespace std;
const double PI = 3.14159;
int main()
{int r = 0;cin >> r;cout << "周⻓:" << 2 * PI * r << endl;cout << "⾯经:" << PI * r * r << endl; //PI = 3.14;//这种写法是错误的,常量不能被修改return 0;
}

习惯上,这种常量的名字⼀般会写成⼤写,⽽普通变量的名字不会全⼤写,这样就可以做⼀个区分。
使⽤ const 定义的常量的好处:
• 增加了程序的可读性, PI ⽐ 3.14159 更加容易理解和书写、使⽤。
• 增加了程序的可维护性,如果改变常量的值,只要在定义的部分修改,使⽤的地⽅也就随之改变
了,做到了"⼀改全改"的效果。
• 常量是不能修改的,当然 const 定义的常量⾃然也不能修改

#include <iostream>
using namespace std;
int main()
{const int num = 10;num = 20; //修改num,编译器会报错的return 0;
}

4.4 练习

练习1:买票https://www.nowcoder.com/practice/0ad8f1c0d7b84c6d8c560298f91d5e66
#include<bits/stdc++.h>
using namespace std;
int main()
{int x;cin>>x;cout<<x*100;return 0;
}

练习2:A + B 问题https://www.luogu.com.cn/problem/B2007
#include<bits/stdc++.h>
using namespace std;
int main()
{int x,y;cin>>x>>y;cout<<x+y;}

练习3:鸡兔同笼

https://www.luogu.com.cn/problem/B2614

#include<bits/stdc++.h>
using namespace std;
int main()
{cout<<12<< " "<<23;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/89577.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/89577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

物理AI是什么技术?

当英伟达CEO黄仁勋在链博会上明确提出“物理AI将是AI的下一浪潮”时&#xff0c;这个看似陌生的概念瞬间引发了科技圈的广泛关注。究竟什么是物理AI&#xff1f;它与我们熟悉的人工智能有何不同&#xff1f;又将如何重塑我们与物理世界的交互方式&#xff1f; 物理AI&#xff1…

GRIB数据处理相关指令

GRIB 数据格式简介 GRIB(General Regularly distributed Information in Binary form)&#xff0c;是由世界气象组织&#xff08;WMO&#xff09;设计和维护的一种用于存储和传输网格数据的标准数据格式&#xff0c;它是一种自描述的二进制压缩格式&#xff0c;通常具有扩展名…

微服务学习(六)之分布式事务

微服务学习&#xff08;六&#xff09;之分布式事务一、认识Seata二、部署TC服务1、准备数据库表2、准备配置文件3、docker部署三、微服务集成seata1、引入依赖2、改造配置3、添加数据库表4、测试四、XA模式1、两阶段提交2、seata的XA模型3、优缺点4、实现步骤五、AT模式1、Sea…

Go实现用户登录小程序

写一个用户登录注册的小程序 运行程序&#xff0c;给出提示1. 注册输入用户名、密码、年龄、性别 {"用户名": "root", "passwd": "123456", "age": 18, "sex": "男"}注册前要判断是否存在此用户2. 登录…

鸿蒙蓝牙通信

https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-bluetooth-low-energy 蓝牙权限 module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.ACCESS_BLUETOOTH","reason": "…

Java:Map

文章目录Map常用方法Map遍历的三种方法先获取Map集合的全部键&#xff0c;再通过遍历来找值Entry对象forEach结合lambda表达式Map 案例分析需求我的代码&#xff08;不好&#xff09;老师的代码&#xff08;好&#xff09;好在哪里另外集合分为Collection和MapMap常用方法 代码…

fastjson2 下划线字段转驼峰对象

在对接第三方或查询数据库时&#xff0c;返回的字段是下划线分隔的&#xff0c;而在业务中需要转成java对象&#xff0c;java对象的字段是驼峰的&#xff0c;使用fastjson2时&#xff0c;有两种方法可以实现&#xff1a; 比如数据格式是&#xff1a; {"item_id": &q…

【硬件】蓝牙音频协议

1. 无线音频传输的工作原理 在无线传输的过程中&#xff0c;音源设备首先将MP3、FLAC等音频文件还原为PCM格式。通过蓝牙音频编码转为蓝牙无线传输的文件&#xff0c;发送到音频设备段。将蓝牙无线传输的文件再次还原为PCM格式&#xff0c;之后转为模拟信号并放大&#xff0c;通…

【宇树科技:未来1-3年,机器人可流水线打螺丝】

在第三届中国国际供应链促进博览会上&#xff0c;宇树科技工作人员表示&#xff0c;未来1到3年内&#xff0c;机器人产品有望从单一工业化产品&#xff0c;发展至复合化工业场景&#xff0c;如机器人搬完箱子后&#xff0c;换个 “手” 就能在流水线上打螺丝。在3到10年内&…

Spring AI 1.0版本 + 千问大模型之 文本记忆对话

上篇文章&#xff0c;主要是简单讲解了一下文本对话的功能。由于模型不具备上下文记忆功能&#xff0c;只能一问一答。因此我们需要实现记忆对话功能&#xff0c;这样大模型回答信息才能够更加准确。 1、pom依赖 项目构建就不详细说了&#xff0c;大家可以参考上篇 文本对话 文…

测试学习之——Pytest Day2

一、Pytest配置框架Pytest的配置旨在改变其默认行为&#xff0c;以适应不同的测试需求和项目结构。理解其配置层级和常用参数&#xff0c;是高效使用Pytest的基础。1. 配置的意义与层级配置的本质在于提供一种机制&#xff0c;允许用户根据项目特点、团队规范或特定测试场景&am…

Go-Redis × RediSearch 全流程实践

1. 连接 Redis ctx : context.Background()rdb : redis.NewClient(&redis.Options{Addr: "localhost:6379",Password: "",DB: 0,Protocol: 2, // 推荐 RESP2// UnstableResp3: true, // 若要体验 RESP3 Raw* })2. 准备示例数据 u…

深入理解指针(指针篇2)

在指针篇1我们已经了解了整型指针&#xff0c;当然还有很多其他类型的指针&#xff0c;像字符指针、数组指针、函数指针等&#xff0c;他们都有他们的特别之处&#xff0c;让我们接着学习。1. 指针类型介绍和应用1.1 字符指针变量字符指针变量类型为char*&#xff0c;一般这样使…

Python+Selenium自动化爬取携程动态加载游记

1. 引言 在旅游行业数据分析、舆情监测或竞品研究中&#xff0c;获取携程等平台的游记数据具有重要价值。然而&#xff0c;携程的游记页面通常采用动态加载&#xff08;Ajax、JavaScript渲染&#xff09;&#xff0c;传统的**<font style"color:rgb(64, 64, 64);backg…

ESP8266服务器建立TCP连接失败AT+CIPSTART=“TCP“,“192.168.124.1“,8080 ERROR CLOSED

1.检查服务器端口8081是否开启监听2.检查路由项是否被防火墙拦截方法 1&#xff1a;使用 netsh查看防火墙规则​netsh advfirewall firewall show rule nameall dirout | findstr "8081"如果无输出&#xff0c;说明防火墙未针对该端口设置规则&#xff08;可能默认拦…

Linux 内存管理(2):了解内存回收机制

目录一、透明大页1.1 原理1.2 透明大页的三大优势1.3 透明大页控制接口详解1.4 使用场景与最佳实践1.5 问题排查与监控1.6 与传统大页的对比二、Linux伙伴系统水位机制详解2.1 三种核心水位详解2.2 水位在伙伴系统中的实现2.3 水位触发机制的实际行为2.4 水位关键操作接口2.5 水…

前端学习7:CSS过渡与动画--补间动画 (Transition) vs 关键帧动画 (Animation)

一、补间动画&#xff08;Tween Animation&#xff09;vs 关键帧动画&#xff08;Keyframe Animation&#xff09;概念对比表&#xff1a;补间动画 (Transition)关键帧动画 (Animation)定义元素从初始状态到结束状态的过渡效果通过定义多个关键帧控制动画的中间状态触发方式需要…

PyTorch 损失函数详解:从理论到实践

目录 一、损失函数的基本概念 二、常用损失函数及实现 1. 均方误差损失&#xff08;MSELoss&#xff09; 2. 平均绝对误差损失&#xff08;L1Loss/MAELoss&#xff09; 3. 交叉熵损失&#xff08;CrossEntropyLoss&#xff09; 4. 二元交叉熵损失&#xff08;BCELoss&…

MinIO深度解析:从核心特性到Spring Boot实战集成

在当今数据爆炸的时代&#xff0c;海量非结构化数据的存储与管理成为企业级应用的关键挑战。传统文件系统在TB级数据面前捉襟见肘&#xff0c;而昂贵的云存储服务又让中小企业望而却步。MinIO作为一款开源高性能对象存储解决方案&#xff0c;正以其独特的技术优势成为开发者的首…

腾讯云服务上下载docker以及使用Rabbitmq的流程

执行以下命令&#xff0c;添加 Docker 软件源并配置为腾讯云源。sudo yum-config-manager --add-repohttps://mirrors.cloud.tencent.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i "s/download.docker.com/mirrors.tencentyun.com\/docker-ce/g" /etc/yu…