【时时三省】(C语言基础)常量和变量

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省

在计算机高级语言中,数据有两种表现形式:常量和变量。

常量

在程序运行过程中,其值不能被改变的量称为常量。数值常量就是数学中的常数。

常用的常量有以下几类:

( 1 )整型常量。如1000,12345,0,-345等都是整型常量。

( 2 )实型常量。

有两种表示形式:

①十进制小数形式,由数字和小数点组成。如123.456,0.345,-56.79,0.0,12.0等。

②指数形式,如12.34e3(代表12.34×10的3次方),一346.87e-25(代表-346.87×10的负25次方),0.145E-25(代表0.145×10的负25次方)等,由于在计算机输入或输出时无法表示上角或下角,故规定以字母e或E代表以10为底的指数。但应注意;e或E之前必须有数字,且e或E后面必须为整数。如不能写成e4,12e2.5。

( 3 )字符常量。有两种形式的字符常量:

①普通字符,用单撇号括起来的一个字符,如:‘a ',' Z ',' 3 ',' ? ',' # '。不能写成'ab'或' 12 '。请注意:单撇号只是界限符,字符常量只能是一个字符,不包括单撇号。' a '和' A '是不同的字符常量。字符常量存储在计算机存储单元中时,并不是存储字符(如a,z,#等)本身,而是以其代码(一般采用ASCII代码)存储的,例如字符’a '的ASCII代码是97,因此,在存储单元中存放的是97(以二进制形式存放)。

②转义字符,除了以上形式的字符常量外,C语言还允许用一种特殊形式的字符常量,就是以字符“\”开头的字符序列。例如在printf函数中的' \ n '代表一个“换行”符。这是一种在屏幕上无法显示的“控制字符”,在程序中也无法用一个一般形式的字符来表示,只能采用这样的特殊形式来表示。

常用的以“\”开头的特殊字符如下

列出的字符称为转义字符,意思是将“\”后面的字符转换成另外的意义。“\ n”中的“n”不代表字母n而作为“换行”符。表中倒数第2行是一个以八进制数表示的字符,例如\ 101 代表八进制数101ASCII字符,即' A '(八进制数101相当于十进制数65)

( 4 )字符串常量。如" boy”,”123”等,用双撇号把若干个字符括起来,字符串常量是双号中的全部字符(但不包括双撇号本身)。注意不能错写成' CHINA ',boy ',' 123 '。单撇号内只能包含一个字符,双撇号内可以包含一个字符串。

说明:从其字面形式上即可识别的常量称为“字面常量”或“直接常量”。字面常量是没有名字的不变量。

( 5 )符号常量用#define指令,指定用一个符号名称代表一个常量。如:# definePI  3.1416

经过以上的指定后,本文件中从此行开始所有的PI都代表3.1 416在对程序进行编译前,预处理器先对PI进行处理,把所有PI全部置换为3.1 416。这种用一个符号名代表一个常量的,称为符号常量。在预编译后,符号常量已全部变成字面常量( 3.1 416 )。使用符号常量有以下好处。

①含义清楚。看程序时从PI就可大致知道它代表圆周率。

②在需要改变程序中多处用到的同一个常量时,能做到“一改全改”。

变量

变量代表一个有名字的、具有特定属性的一个存储单元。它用来存放数据,也变量名就是存放变量的值。在程序运行期间,变量的值是可以改变的。

变量必须先定义,后使用。在定义时指定该变量的名字和类型。

常变量

C99允许使用常变量,方法是在定义变量时,前面加一个关键字const,如:

const int a = 3;

定义a为一个整型变量,指定其值为3,而且在变量存在期间其值不能改变。

常量的异同是:常变量具有变量的基本属性:有类型,占存储单元,只是不许改变其值。可以说,常变量是有名字的不变量,而常量是没有名字的不变量。有名字就便于在程序中被引用。

说明:有些编译系统还未实现C99的功能,因此不能使用常变量。

标识符

在计算机高级语言中,用来对变量、符号常量名、函数、数组、类型等命名的有效字符列统称为标识符(identifier)。简单地说,标识符就是一个对象的名字。

C语言规定标识符只能由字母、数字和下画线3种字符组成,且第1个字符必须为字或下画线。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

deep-research 专用评测数据集

Deep Research自2025年2月初由OpenAI推出后迅速引发全球关注,其通过端到端强化学习技术实现多步骤研究任务自动化,能在数十分钟内生成分析师水平报告,效率远超人类(耗时从30分钟到30天不等),被学者评价为“…

WordPress平台如何接入Deepseek,有效提升网站流量

深夜改代码到崩溃?《2024全球CMS生态报告》揭露:78%的WordPress站长因API对接复杂,错失AI内容红利。本文实测「零代码接入Deepseek」的保姆级方案,配合147SEO的智能发布系统,让你用3个步骤实现日均50篇EEAT合规内容自动…

QT零基础学习之路(六)--如何添加资源文件

源码地址(优先更新):点击此处

【愚公系列】《Python网络爬虫从入门到精通》033-DataFrame的数据排序

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…

Python入门12:面向对象的三大特征与高级特性详解

面向对象编程(OOP)是Python编程中非常重要的一部分,它通过封装、继承和多态这三大特征,帮助我们更好地组织和管理代码。除此之外,Python还提供了一些其他特性,如类属性、类方法和静态方法,进一步…

20分钟 Bash 上手指南

文章目录 bash 概念与学习目的第一个 bash 脚本bash 语法变量的使用位置参数管道符号(过滤条件)重定向符号条件测试命令条件语句case 条件分支Arrayfor 循环函数exit 关键字 bash 脚本记录历史命令查询文件分发内容 bash 概念与学习目的 bash&#xff0…

观成科技:海莲花“PerfSpyRAT”木马加密通信分析

1.概述 在2024年9月中旬至10月,东南亚APT组织“海莲花”通过GitHub发布开源安全工具项目,针对网络安全人员发起了定向攻击。通过对相关攻击活动进行分析,可以将其与一些海莲花的样本关联起来。这些样本的通信数据结构与海莲花此前使用的攻击…

Orange 开源项目 - 集成百度智能云-千帆大模型

1 集成百度智能云-千帆大模型 百度智能云-千帆ModelBuilder百度智能云千帆大模型服务与开发平台ModelBuilder(以下简称千帆ModelBuilder)是面向企业开发者的一站式大模型开发及服务运行平台。千帆ModelBuilder不仅提供了包括文心一言底层模型和第三方开源…

猿大师播放器:网页内嵌VLC/FFPlayer在Web端直接播放RTSP/RTMP/H.265视频流

据统计,2024年中国视频转码服务器市场规模已突破百亿,但企业IT投入中约40%用于转码服务器的采购与维护,消防、安防等场景对实时性的严苛要求(如火灾预警需秒级响应),使得传统转码方案因延迟过高而屡屡失效&…

uni-app 开发 App 、 H5 横屏签名(基于lime-signature)

所用插件&#xff1a;lime-signature 使用到 CSS 特性 绝对定位transform 旋转transform-origin transform 原点 复习一下定位元素&#xff08;相对定位、绝对定位、粘性定位&#xff09; 代码# <template><view class"signature-page"><view clas…

搜广推校招面经三十一

vivo策略算法 一、机器学习中 L1 和 L2 正则化的原理 见【搜广推校招面经二十五】 L1 正则化将某些特征权重置0实现模型简化&#xff0c;而 L2 正则化主要通过平滑权重来实现模型简化。 1.1. 正则化的原理 正则化的核心思想是在损失函数中加入一个惩罚项&#xff08;Regula…

DeepSeek+Kimi生成高质量PPT

DeepSeek与Kimi生成PPT全流程解析 一、工具分工原理 DeepSeek核心作用&#xff1a;生成结构化PPT大纲&#xff08;擅长逻辑构建与内容优化&#xff09;Kimi核心作用&#xff1a;将文本转换为视觉化PPT&#xff08;提供模板库与排版引擎&#xff09; 二、操作步骤详解 1. 通…

vmware虚拟机安装使用教程【视频】

vmware虚拟机安装使用教程【视频】 VMware是一款强大的桌面级虚拟化软件&#xff0c;它允许用户在单个计算机上同时运行多个操作系统&#xff0c;每个操作系统都被称为一个虚拟机&#xff08;VM&#xff09;。这种技术不仅方便了软件测试、系统开发&#xff0c;还便于资源管理&…

【Linux Oracle】time命令+oracle exp压缩

Linux && Oracle相关文档&#xff0c;希望互相学习&#xff0c;共同进步 风123456789&#xff5e;-CSDN博客 1.说明 Linux中的time命令&#xff1a;主要用于测量命令的执行时间&#xff0c;并显示该命令在执行过程中所使用的系统资源情况&#xff0c;如CPU时间、内存和…

STM32CUBEIDE FreeRTOS操作教程(十三):task api 任务访问函数

STM32CUBEIDE FreeRTOS操作教程&#xff08;十三&#xff09;&#xff1a;task api 任务访问函数 STM32CUBE开发环境集成了STM32 HAL库进行FreeRTOS配置和开发的组件&#xff0c;不需要用户自己进行FreeRTOS的移植。这里介绍最简化的用户操作类应用教程。以STM32F401RCT6开发板…

网络安全扫描--基础篇

前言 1、了解互联网安全领域中日趋重要的扫描技术 2、了解在不同网络场景下扫描技术手段 3、熟悉linux下系统内核防护策略并能大件一个有效的系统防护体系 4、增强工作安全意识&#xff0c;并能有效的实践于工作场景中 目录 1、熟悉主机扫描工具&#xff08;fping&#xff0c;…

品融电商解读:小红书KOC打法如何重构品牌增长新路径

品融电商解读&#xff1a;小红书KOC打法如何重构品牌增长新路径 在内容生态高度饱和的今天&#xff0c;品牌若想在小红书等平台实现破局&#xff0c;仅依赖“产品为王”的单一逻辑已远远不够。作为国内头部的小红书代运营公司&#xff0c;品融电商观察到&#xff0c;平台的竞…

【原创工具】文件清单生成器 By怜渠客

【原创工具】文件清单生成器 By怜渠客 刚在论坛看到了一个文件列表生成器 文件列表生成器 - 吾爱破解 - 52pojie.cn &#xff0c;和我去年写的一个软件很像&#xff0c;当时我也是有需求&#xff0c;要把一个文件夹里及其子文件夹里所有的文件列出来&#xff0c;就临时弄了个小…

深度学习-6.用于计算机视觉的深度学习

Deep Learning - Lecture 6 Deep Learning for Computer Vision 简介深度学习在计算机视觉领域的发展时间线 语义分割语义分割系统的类型上采样层语义分割的 SegNet 架构软件中的SegNet 架构数据标注 目标检测与识别目标检测与识别问题两阶段和一阶段目标检测与识别两阶段检测器…

力扣-动态规划-746 使用最小花费爬楼梯

思路 dp数组定义&#xff1a;爬到第i层楼梯最小消耗dp[i]的费用递推公式&#xff1a;dp数组初始化&#xff1a;dp[0] 0, dp[1] 0;遍历顺序&#xff1a;顺序遍历时间复杂度&#xff1a; 代码 class Solution { public:int minCostClimbingStairs(vector<int>&am…