常量和变量
常量
常量是指在程序中使用的一些具体的数、字符。在程序运行过程中,其值不能被更改。如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的设置…...
【免费下载】 新概念英语第三册资源集合
新概念英语第三册资源集合 【下载地址】新概念英语第三册资源集合 新概念英语第三册资源集合 项目地址: https://gitcode.com/open-source-toolkit/8a5ad 资源介绍 本仓库提供了一系列新概念英语第三册(New Concept English 3)的资源文件&#x…...
Solidworks 2018+ 机器人模型避坑指南:用SW2URDF插件导出URDF,再导入Webots R2023a完整流程
SolidWorks 2018机器人模型导入Webots全流程避坑指南 在机器人仿真领域,将SolidWorks设计的机械模型准确导入Webots仿真环境是一个关键但充满挑战的环节。许多工程师和学生在初次尝试这一流程时,往往会在版本兼容性、文件路径、坐标系设置等环节遭遇各种…...
探索ONVIF世界:轻松对接RTSP视频流的开源宝藏
探索ONVIF世界:轻松对接RTSP视频流的开源宝藏 【下载地址】ONVIF协议RTSP视频流与OnvifDeviceManager对接实现 本资源文件提供了一个成功实现ONVIF协议RTSP视频流与OnvifDeviceManager对接的代码示例。该示例对于希望实现ONVIF视频对接的开发者具有一定的参考价值 …...
Inter字体终极指南:如何为现代数字界面选择最佳开源字体方案?
Inter字体终极指南:如何为现代数字界面选择最佳开源字体方案? 【免费下载链接】inter The Inter font family 项目地址: https://gitcode.com/gh_mirrors/in/inter Inter字体是一款专为数字屏幕精心设计的开源无衬线字体系统,通过科学…...
从开发者视角看Taotoken文档与示例代码对降低接入门槛的帮助
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 从开发者视角看Taotoken文档与示例代码对降低接入门槛的帮助 作为一名经常需要集成不同AI模型服务的开发者,我经历过不…...
2026年热门抠图软件怎么选?好用的抠图工具实测对比指南
抠图需求在生活和工作中越来越常见——无论是制作证件照、电商产品展示,还是社交媒体内容编辑,一款趁手的抠图工具能省去大量时间。但市面上的抠图软件五花八门,功能各不相同,如何找到最适合自己的那一款?本文将从多个…...
生成式 AI 的成本暗礁:FinOps 如何照亮从试点到规模化的全链路
前言 全球大模型市场正呈现爆发式增长态势。2025年全球大语言模型市场规模约140亿美元,预计到2032年将接近6910亿美元,未来六年年复合增长率(CAGR)高达74.9%。2026年第一季度,全球LLM月活跃用户已突破38亿人ÿ…...
抠图软件在线使用有哪些?2026年最全对比测试,找到适合你的工具
最近被问得最多的问题就是:"有没有特别好用的抠图软件?"说实话,这两年AI技术的发展真的改变了抠图这件事儿。我自己也用过不少抠图工具,从专业的PS到各种在线应用,今天就来好好聊聊抠图软件在线使用有哪些选…...
如何快速提升Windows性能:终极系统优化完整指南
如何快速提升Windows性能:终极系统优化完整指南 【免费下载链接】Winhance-zh_CN A Chinese version of Winhance. C# application designed to optimize and customize your Windows experience. 项目地址: https://gitcode.com/gh_mirrors/wi/Winhance-zh_CN …...
Pandas 数据清洗与分析
第一部分:水果销售分析(入门篇)首先,我们有一个简单的水果销售列表。我们的任务是算出每种水果的总销量,以及每天的销售明细。1. 数据准备我们先造一点数据:import pandas as pd import numpy as npdata {…...
