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

常量和变量

常量

常量是指在程序中使用的一些具体的数、字符。在程序运行过程中,其值不能被更改。如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,只能用于指针型变量,函数返回值和函数参数。

相关文章:

常量和变量

常量 常量是指在程序中使用的一些具体的数、字符。在程序运行过程中&#xff0c;其值不能被更改。如123,145.88,m,TRUE等。常量&#xff0c;用于记录程序中不可更改的数据。 分类 1、整型常量&#xff0c;表示整数的常量。 表示形式&#xff1a;   1&#xff09;十进制形…...

Go语言的使用

在安装Go和配置镜像时&#xff0c;可以根据操作系统和网络环境来选择适合的步骤。以下是详细的安装步骤和镜像配置&#xff1a; 1. 安装Go 1.1 通过官方下载 访问 Go的官方下载页面 下载适合操作系统的安装包&#xff08;Windows、macOS 或 Linux&#xff09;。安装包下载完…...

详解CRC校验原理以及FPGA实现

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

企业如何通过架构蓝图实现数字化转型

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

React第十三章(useTransition)

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

IDEA使用Maven Helper查看整个项目的jar冲突

在插件市场安装Maven Helper&#xff0c;安装好后&#xff0c;重启IDEA&#xff1b;双击打开可能存在jar冲突的pom文件&#xff1b;在右侧面板查看冲突,text是引入的依赖明细&#xff0c;点击Dependecy Analyzer选项卡即可查看冲突的jar。...

uniapp项目 存储数据到手机本地

打开manifest.json&#xff0c;在App权限配置中&#xff0c;添加读取和写入的权限 <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE"/&g…...

景联文科技医疗数据处理平台:强化医疗数据标注与管理,推动医疗数字化新篇章

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

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提供了一套强大的版本管理机制&#xff0c;允许开发者管理项目的版本号&#xff0c;并在不同的版本之间进行升级和降级。以下是如何使用Maven进行版本管理的详细步骤和代码示例&#xff1a; 步骤 1: 定义项目版本 在pom.xml文件中&#xff0c;你需要定义项目的版本号。版…...

AWS RDS MySQL内存使用

1. AWS RDS所拥有的内存&#xff08;实例类型&#xff09;&#xff0c;和数据库能够使用的内存是不同的。RDS实例为操作系统和 RDS 管理进程预留了内存&#xff0c;数据库使用内存大小&#xff0c;小于数据库实例类的硬件规格中所示的值&#xff08;以 GiB 为单位&#xff09;[…...

Vue指令:v-else、v-else-if

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

基于SSM志愿者招募系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;志愿组织管理&#xff0c;组织信息管理&#xff0c;组织申请管理&#xff0c;志愿活动管理活动报名管理 用户账号功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;…...

数学建模与优化算法:从基础理论到实际应用

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

微信小程序生成二维码

目前是在开发小程序端 --> 微信小程序。然后接到需求&#xff1a;根据 form 表单填写内容生成二维码&#xff08;第一版&#xff1a;表单目前需要客户进行自己输入&#xff0c;然后点击生成按钮实时生成二维码&#xff0c;不需要向后端请求&#xff0c;不存如数据库&#xf…...

自由软件与开源软件:异同与联系

自由软件与开源软件&#xff1a;异同与联系 随着信息技术的快速发展&#xff0c;自由软件运动与开源软件运动成为推动软件开发领域变革的重要力量。虽然这两个概念在日常对话中常被交替使用&#xff0c;但它们各自有着不同的理念和发展历程。本文将探讨自由软件运动与开源软件…...

Vue中ref、reactive、toRef、toRefs的区别

一、ref、reactive setup 函数中默认定义的变量并不是响应式的&#xff08;即数据变了以后页面不会跟着变&#xff09;&#xff0c;如果想让变量变为响应式的变量&#xff0c;需要使用 ref 和 reactive 函数修饰变量。 ref 函数可以把基本类型变量变为响应式引用reactive 函数…...

凸极式发电机的相量图分析和计算,内功率因数角和外功率因数角和功角的定义。

图1&#xff1a;同步发电机稳态相量图 若发电机为凸极式&#xff0c;由于凸极机正、交轴同步电抗不等&#xff0c;即xd≠xq&#xff0c;因此必须先借助虚构电动势 E ˙ Q E ˙ q − ( x d − x q ) I ˙ d \dot{E}_Q\dot{E}_q-(x_d-x_q)\dot{I}_d E˙Q​E˙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项目&#xff0c;会弹出swagger登录验证框&#xff0c;虽然采用Furion简化了项目加载过程及配置&#xff0c;但是学习源码过程就比较恼火&#xff0c;很多设置及功能搞不清楚到低是怎么启用的&#xff0c;本文记录学习Admin.NET项目中swagger的设置…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...