常量和变量
常量
常量是指在程序中使用的一些具体的数、字符。在程序运行过程中,其值不能被更改。如123,145.88,'m',TRUE等。常量,用于记录程序中不可更改的数据。
分类
1、整型常量,表示整数的常量。
表示形式:
1)十进制形式。如99、-1。
2)八进制形式。以数字0打头,由0-7构成。如012,表示八进制整数12,即12(8)。
3)十六进制形式。以0x打头,如0x12A,表示十六进制整数12A,即12A(16)。
2、实型常量:如3.1、-6.1E+2(科学记数法)。
3、字符常量:是用单引号括起来的字符,如 'k' ,'5','%'。
常量的定义方式
1、#define 宏常量
2、const修饰的变量
数值(文字常量)
在计算机中,文字是指在程序中直接用符号表示的数值。
数值是指直接参加运算的数。出现在程序中的数值,它的值在程序运行过程中是不能被改变的,故又称为文字常量。
一个具体的数值称为文字常量。如:i=255; area=r*r3.14;
所谓常量,其实是特殊的变量,固定不变的值,有且只有一次赋值。
定义常量需要在定义变量的语法基础上加上一个关键字修饰。
符号常量
一个常量可以直接调用(如124,'A'),也可以给常量取个名字,可以用一个标识符代表它,这就是符号常量。
语法格式:#define 符号常量名 数值
例如: #define MaxChar 255 #define PI 3.14
定义符号常量时不能用赋值符
#define PI=3.14是错误的。
由于define 是预处理指令,语句不能以分号结尾。
注:C++源程序中以#开头、以换行符结尾的行称为预处理命令。预处理命令不是C++语言的语法成分,在编译前由预处理器执行,在目标程序中,不含预处理指令对应的机器码。因此,预处理命令不以分号结尾。
常变量
C++为符号常量提供了一种新方法,
语法格式:const 数据类型 符号常量名 = 数值;
用const修饰后,变量的值就不能改变了,实质上是一种“常变量”。
例如: const short int MaxChar=255; const float PI=3.14;
在定义常变量时一定要赋初值。
比较
文字常量 | 符号常量 | 常变量 |
---|---|---|
i=255;area=rr3.14; | #define MaxChar 255 #define PI 3.14 | const short int MaxChar=255; const float PI=3.14; |
在程序中直接使用数值有两个问题:
(1)可读性差 ;
(2)可维护性差 ;
与直接使用文字常量相比,使用符号常量增强了程序的可读性,可维护性。
例1:输入半径r,求圆的周长及面积。
#include<cstdio>
//调用iostream库,否则使用printf和scanf语句编译出错
using namespace std;
const double PI=3.1415926; //PI是符号常量。代表3.1415926int main()
{float r,c,s; //定义实型变量printf("r="); //显示提示符r=scanf("%f",&r);//输入r的值,&符号不能漏掉c=2*PI*r; //计算圆的周长s=PI*r*r; //计算圆的面积printf("c=%.2f s=%.2f\n",c,s); //显示计算结果,结果保留2位小数
}
说明:程序中定义的PI代表常量3.1415926,在编译源程序时,遇到PI就用常量3.1415926代替,PI可以和常量一样进行运算。C++语言规定,每个符号常量的定义占据一个书写行,而且符号常量不能被再赋值。
拓展
通常符号常量名用大写,而变量名用小写,以便于区别。
使用符号常量的好处:
1)增加了程序的可读性。比如例1程序中,见到PI就知道它代表圆周率,定义符号常量名时应该尽量使用见名知意的常量名。
2)增加了程序的易改性。比如例1程序中,只需改动一处,程序中的所有PI都会自动全部代换,做到“一改全改”。
常量是有类型的数据,变量在某一固定时刻用来存储一个常量,因此也应有相应的类型。如整型变量用来存储整数,实型变量用来存储实数。
变量一经定义系统就在计算机内存中为其分配一个存储空间。在程序中使用到变量时,就在相应的内存中存入数据或取出数据,这种操作称为变量的访问。
变量
在程序运行时会产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每一个内存单元都用一个标识符来标识。
往往这些内存单元,我们称之为变量,定义的标识符就是变量名,内存中存储的数据就是变量的值。
变量是存储数据的内存区域,变量名是这块区域的名字。变量之所以叫变量是因为在程序运行的过程中变量标识的内存区中的数据可以改变。
在C++中变量取名要遵循标识符的构成规则。
声明变量
语法格式:数据类型 变量名;
也可以理解为:数据类型 变量名1,变量名2,…,变量名n;
例如:int a;
int a,b,c;
extern 数据类型 变量名;
extern int a,b;
变量的命名
变量名应遵循自定义标识符的命名规则。
建议使用“见名知义”的原则,即用一些有意义的单词作为变量名。
1、由任意顺序的大小写字母、数字和下划线组成;
2、不能以数字开头;
3、不能是关键字;
4、区分大小写;
5、变量名最好见名知意;
给变量赋值
1、给变量赋初值
格式:
数据类型 变量名;
变量名=变量初始值;
int a;
a=3;
2、多个变量同时赋值
格式:数据类型 变量名1=初值1,变量名2=初值2,…,变量名n=初值n;
int a=10,b=5,c=9;
// 变量声明extern int a, b;
int main () {int a, b; // 变量定义a = 23; // 初始化b = 25;return 0;
}
程序中可以多次声明一个变量,但变量在某个文件、函数或者代码块中只能被定义一次,如果多个变量赋同一个值,需要分别赋值。
变量的数据类型
变量在使用之前需要先声明和定义。定义变量时必须先声明变量的数据类型,为变量赋值时要赋予和变量同一类型的值。
在c++中变量的数据类型分为两种:预定义类型和自定义数据类型。
预定义类型
整型(int 4个字节)
字符型 (char)
浮点型:单精度(float) 双精度(double)
布尔型 (bool)
无类型void (空类型)
宽字符型(wchar_t)
指针类型
自定义类型
数组、结构体(struct)、联合体(union)、枚举(enum).
类型修饰符: signed,unsigned,short,long
一些基本类型可以使用一个或者多个类型修饰符进行修饰。
例如:
signed int a;有符号整数
short int a;短整型,2个字节
long int a;长整型,4个字节
无类型
无类型void (空类型):关键字void,只能用于指针型变量,函数返回值和函数参数。
相关文章:
常量和变量
常量 常量是指在程序中使用的一些具体的数、字符。在程序运行过程中,其值不能被更改。如123,145.88,m,TRUE等。常量,用于记录程序中不可更改的数据。 分类 1、整型常量,表示整数的常量。 表示形式: 1)十进制形…...
Go语言的使用
在安装Go和配置镜像时,可以根据操作系统和网络环境来选择适合的步骤。以下是详细的安装步骤和镜像配置: 1. 安装Go 1.1 通过官方下载 访问 Go的官方下载页面 下载适合操作系统的安装包(Windows、macOS 或 Linux)。安装包下载完…...

详解CRC校验原理以及FPGA实现
文章目录 一、什么是CRC校验?二、实现CRC校验原理以及步骤2.1 用多项式表示二元码数据2.2 选择一个生成多项式作为校验2.3 计算CRC校验码 三、CRC判断数据是否错误的原理以及步骤3.1 将收到的数据与生成多项式求余3.2 数据发生错误再进行CRC校验判断 四、FPGA实现CR…...

企业如何通过架构蓝图实现数字化转型
数字化转型的关键——架构蓝图的力量 在当今的商业世界,数字化转型已经不再是一个选择,而是企业生存与发展不可回避的战略行动。企业希望通过数字化提高效率、增强灵活性,并为客户提供更好的体验。然而,数字化转型不仅仅涉及技术…...

React第十三章(useTransition)
useTransition useTransition 是 React 18 中引入的一个 Hook,用于管理 UI 中的过渡状态,特别是在处理长时间运行的状态更新时。它允许你将某些更新标记为“过渡”状态,这样 React 可以优先处理更重要的更新,比如用户输入&#x…...

IDEA使用Maven Helper查看整个项目的jar冲突
在插件市场安装Maven Helper,安装好后,重启IDEA;双击打开可能存在jar冲突的pom文件;在右侧面板查看冲突,text是引入的依赖明细,点击Dependecy Analyzer选项卡即可查看冲突的jar。...
uniapp项目 存储数据到手机本地
打开manifest.json,在App权限配置中,添加读取和写入的权限 <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE"/&g…...

景联文科技医疗数据处理平台:强化医疗数据标注与管理,推动医疗数字化新篇章
随着医疗科技快速进步与广泛应用,医疗信息的规模正在迅速扩张,如何有效管理这些医疗数据成为了关键议题。 医疗数据不仅包括传统的纸质病历,还有电子病历、实验室检测结果、医学影像等多样化的数字信息。为确保这些数据能为临床决策、科研分析…...

vue使用高德地图实现轨迹显隐
<template><div><el-button type"primary" click"pathShowOrHide">轨迹显/隐</el-button><div id"container" /></div> </template><script> import AMapLoader from amap/amap-jsapi-loaderex…...
Maven(20) 如何使用Maven进行版本管理?
Maven提供了一套强大的版本管理机制,允许开发者管理项目的版本号,并在不同的版本之间进行升级和降级。以下是如何使用Maven进行版本管理的详细步骤和代码示例: 步骤 1: 定义项目版本 在pom.xml文件中,你需要定义项目的版本号。版…...
AWS RDS MySQL内存使用
1. AWS RDS所拥有的内存(实例类型),和数据库能够使用的内存是不同的。RDS实例为操作系统和 RDS 管理进程预留了内存,数据库使用内存大小,小于数据库实例类的硬件规格中所示的值(以 GiB 为单位)[…...

Vue指令:v-else、v-else-if
目录 1.语法: 2. 题目 3.页面展示 4.结构 1.语法: 1.作用:辅助v-if进行判断渲染 2.语法:v-else 、v-esle-if"表达式" 2. 题目 <!DOCTYPE html> <html lang"en"> <head><meta chars…...

基于SSM志愿者招募系统的设计
管理员账户功能包括:系统首页,个人中心,用户管理,志愿组织管理,组织信息管理,组织申请管理,志愿活动管理活动报名管理 用户账号功能包括:系统首页,个人中心,…...

数学建模与优化算法:从基础理论到实际应用
数学建模和优化算法,它们不仅帮助我们理解和描述复杂系统的行为,还能找到系统性能最优化的解决方案。本文将从基础的数学理论出发,逐步深入到各种优化算法,并探讨它们在实际问题中的应用。 思维导图文件可获取:https:…...

微信小程序生成二维码
目前是在开发小程序端 --> 微信小程序。然后接到需求:根据 form 表单填写内容生成二维码(第一版:表单目前需要客户进行自己输入,然后点击生成按钮实时生成二维码,不需要向后端请求,不存如数据库…...
自由软件与开源软件:异同与联系
自由软件与开源软件:异同与联系 随着信息技术的快速发展,自由软件运动与开源软件运动成为推动软件开发领域变革的重要力量。虽然这两个概念在日常对话中常被交替使用,但它们各自有着不同的理念和发展历程。本文将探讨自由软件运动与开源软件…...

Vue中ref、reactive、toRef、toRefs的区别
一、ref、reactive setup 函数中默认定义的变量并不是响应式的(即数据变了以后页面不会跟着变),如果想让变量变为响应式的变量,需要使用 ref 和 reactive 函数修饰变量。 ref 函数可以把基本类型变量变为响应式引用reactive 函数…...

凸极式发电机的相量图分析和计算,内功率因数角和外功率因数角和功角的定义。
图1:同步发电机稳态相量图 若发电机为凸极式,由于凸极机正、交轴同步电抗不等,即xd≠xq,因此必须先借助虚构电动势 E ˙ Q E ˙ q − ( x d − x q ) I ˙ d \dot{E}_Q\dot{E}_q-(x_d-x_q)\dot{I}_d E˙QE˙q−(xd−xq)…...
systemctl restart NetworkManager 重启后,文件/etc/resolv.conf修改失败
如果你在重启 NetworkManager 之后发现无法修改 /etc/resolv.conf 文件,这是因为 NetworkManager 会自动管理这个文件 为了解决这个问题,你可以采取以下两种方法之一: 方法一:禁用 NetworkManager 服务 使用以下命令停止 NetworkManager 服务:sudo systemctl stop Netwo…...

Admin.NET源码学习(5:swagger使用浅析)
直接启动Admin.NET.Web.Entry项目,会弹出swagger登录验证框,虽然采用Furion简化了项目加载过程及配置,但是学习源码过程就比较恼火,很多设置及功能搞不清楚到低是怎么启用的,本文记录学习Admin.NET项目中swagger的设置…...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...

优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...