【C语言入门教程】2.2 常量 与 变量

时间:2022-03-29 00:20:52

2.2 常量 与 变量

顾名思义,常量是运算中不能改变数值的数据类型,变量是可改变数值的数据类型。根据需要,可将一些在程序中不必改变数值的类型定义为常量,这样也可避免因修改数值造成程序错误。任何改变常量数值的操作都会引起编译错误。

2.2.1 标识符命令

C语言程序中,每个数据都有其标识符,如常量名、变量名、函数名或宏名。标识符是数据或程序模块的名字,一般情况下,只能通过标识符操作对应的数据或模块。ANSI C规定了标识符的命令规则,第一个字符必须为下划线或英文字母,其后的字符必须为下划线、数字或英文字母。例如,year、month01、_day都是正确的命令,而2year、mon!th01、day..one是错误的命名。另外,标识符命令时要避免与C语言关键字相同。

标识符的长度不受限制,但ANSI C标准考虑到程序的移植性,要求不同源代码间相互引用的外部名称必须能够由前 8 个字符进行区分。这是因为对某些仅能识别8个字符的编译器而言,外部名calcount1、cacount2
将被当做同一个标识符处理。同一个源代码文件中的标识符称为内部名称,ANSI C标准要求内部名称至少能通过前31个字符区别。虽然常量名、变量名、函数名或宏名代表程序的不同部分,但不能使用同一个名称。

C语言严格区分英文字母的大小写,例如,变量名 number、Number、NUMBER是不同的标识符。

2.2.2 常量

C语言中的常量有 4 种基本类型:

  • #define定义的符号常量;
  • 字符、字符串常量、数值常量;
  • 常量变量;
  • 枚举常量;

符号常量通常出现在文件的开始,它更像是编辑器的字符串替换操作。下列是#define的用法:

#define PI 3.14					// 定义常量数值
#define NAME "Micro Computer" // 定义一个常量字符串

字符、字符串常量 和 数值常量是直接在源代码中出现的字符、字符串和数值,因为程序运行时它们会在内存中占据固定内存,
所以认为它是常量。下列是使用字符、字符串常量和数值常量用法:

putchar('D');				// 单引号中的是字符常量
printf("Micro Scott"); // 双引号中的是字符串常量
a = 500.234; // 赋值符号右边的是数值常量

常量变量是一种特殊的常量,它实际是用 const 修饰符限制了变量改变其值。下列是
常量变量的定义方法:

const int dog_count = 65;	// dog_count 是定义的整型常量,其值为 65

枚举常量是一种聚合类型,它有多个成员,默认情况下第一个成员所代表的数值是 0,后面的成员所代表的数值在前面成员的数值上加 1。也可以在定义枚举常量时为成员赋值,示例代码如下:

enum weekday {MON = 1, TUE, WED, THU, FRI, SAT, SUN};	// 定义枚举常量和成员,将 MON 的值设置为 1
printf("%d", SUM); // 输出成员 SUN 的值

该例的输出结果为 7,第 1 个成员 MON 值为 1 后,第 7 个成员的值要在第 1 个成员的基础上加 6,所以 SUM 的值为 7。

2.2.3 变量

运算中可以改变数值的数据类型称为变量。每个变量拥有唯一的名字,在内存中占据一定的存储单元,在该存储单元中存放变量的值。所有的 C变量必须在使用之前声明,声明变量的一般形式是:

数据类型 变量名;

下列定义了一个整型变量并为其赋值:

int count;			// 定义一个整型变量,变量名为 count
count = 25; // 为变量 count 赋值

声明变量和为变量赋值也可以从两个合并为一个 ,如 “int count = 25;”。也可以同时声明多个变量并为其赋值,变量或表达式间以逗号分隔,如“int count = 25, lenth;”。

变量在被使用前必须先赋值,未赋值前,其值可能会是对应数据类型中的任意一个数字。如果变量被声明,但在整个程序中未对其赋值或使用,则 GCC 编辑器会给出一个警告信息。

【C语言入门教程】2.2 常量 与 变量的更多相关文章

  1. C语言入门(4)——常量、变量与赋值

    对于基本数据类型量,按其取值是否可改变又分为常量和变量两种.在程序执行过程中,其值不发生改变的量称为常量,其值可变的量称为变量.它们可与数据类型结合起来分类. 常量 常量有字符常量(Character ...

  2. 【C语言入门教程】4.5 指针变量的定义与引用

    指针变量是包含内存地址的变量.一般的变量直接包含一个特定的值,而指针变量包含的是某一特定数据类型的内存地址.普通变量直接引用其中的值,指针变量则间接引用所指向内存地址中的值.指针变量在使用前需要声明与 ...

  3. go语言入门教程:基本语法之变量声明及注意事项

    一.变量的使用 1.1 什么是变量 变量是为存储特定类型的值而提供给内存位置的名称.在go中声明变量有多种语法. 所以变量的本质就是一小块内存,用于存储数据,在程序运行过程中数值可以改变 1.2 声明 ...

  4. 《Ruby语言入门教程v1.0》学习笔记-01

    <Ruby语言入门教程v1.0> 编著:张开川 邮箱:kaichuan_zhang@126.com 想要学习ruby是因为公司的自动化测试使用到了ruby语言,但是公司关于ruby只给了一 ...

  5. C语言入门教程-&lpar;5&rpar;格式化输入输出

    1.输入和输出 在程序的使用中,我们经常可以看的这么一个场景:用户需要输入数据,经过程序运算,得到结果后输出.在C语言中,输入数据和输出数据都是由库函数完成的,通过语句来输入/输出. 2.格式化输出— ...

  6. 《JavaScript语言入门教程》记录整理:运算符、语法和标准库

    目录 运算符 算数运算符 比较运算符 布尔运算符 二进制位运算符 void和逗号运算符 运算顺序 语法 数据类型的转换 错误处理机制 编程风格 console对象和控制台 标准库 Object对象 属 ...

  7. Go语言入门教程&lpar;十&rpar;之函数

    Hello 各位小伙伴大家好,我是小栈君,假期一眨眼就过去了.不知道大家玩的是否开心呢? 上次我们讲到了关于Go语言的流程控制,小栈君也希望小伙伴跟着小栈君一步一个脚印的敲一下代码,相互进步.本期我们 ...

  8. c语言该怎么入门&quest;C语言入门教程&lpar;非常详细&rpar;

    C语言是一门面向过程的编译型语言,它的运行速度极快,仅次于汇编语言.C语言是计算机产业的核心语言,操作系统.硬件驱动.关键组件.数据库等都离不开C语言:不学习C语言,就不能了解计算机底层. 这套「C语 ...

  9. 《JavaScript语言入门教程》记录整理:入门和数据类型

    目录 入门篇 js介绍 历史 基本语法 数据类型 概述 null 和 undefined 数值 字符串 对象 函数 数组 本系列基于阮一峰老师的<JavaScrip语言入门教程>或< ...

  10. 《JavaScript语言入门教程》记录整理:面向对象

    目录 面向对象编程 实例对象与 new 命令 this关键字 对象的继承 Object对象的方法 严格模式(strict mode) 本系列基于阮一峰老师的<JavaScrip语言入门教程&gt ...

随机推荐

  1. Oracle Sales Cloud:管理沙盒(定制化)小细节2——使用对象触发器更新数字字段

    在上一篇 "管理沙盒(定制化)小细节1" 的随笔中,我们使用公式法在 "业务机会" 对象(单头)上建立了 "利润合计" 字段,并将它等于 & ...

  2. Hibernate中Java对象的三种状态

                                                                                     Hibernate中Java对象的三种 ...

  3. Ret2Libc 练习(2) -- VirtualProtect

    这几天做了NSCTF和GCTF,耽误了几天,今天继续. 这次绕过DEP的方法是利用VirtualProtect函数将shellcode所在的内存属性改成可执行状态就可以绕过DEP了. 首先看一下Vir ...

  4. jQuery事件和JavaScript事件

    1.JavaScript事件: 属性 当以下情况发生时,出现此事件 FF N IE onabort 图像加载被中断 1 3 4 onblur 元素失去焦点 1 2 3 onchange 用户改变域的内 ...

  5. java-No exception of type ConfigurationException can be thrown&semi; an exception type must be a subclass of Throwable

    功能:读配置文件 java菜鸟:导入工程在报名处就开始报错,第一次遇到 import org.apache.commons.lang3.StringUtils; import org.apache.c ...

  6. 源码分析:静态分析 C 程序函数调用关系图

    http://www.tinylab.org/callgraph-draw-the-calltree-of-c-functions/

  7. CopyU!SW新版发布!

    CopyU!SW新版发布,版本号为:2.1.412.213 主要更新内容如下: 此版本(2.1.412.213)主要作了如下更新:        1.修复了CopyU!SW版本中的运行模式规则的设定错 ...

  8. Spring事务管理配置示例

    (一).Spring事务特性 1.事务隔离级别 隔离级别是指若干个并发的事务之间的隔离程度. ISOLATION_DEFAULT:默认值,使用数据库的默认隔离级别,就是ISOLATION_READ_C ...

  9. cetos6&period;8配置svn服务器

    一,安装步骤 1,  检查是否安装过svn rpm -qa subversion 2,  卸载旧版本svn yum remove subversion 3,  安装SVN,输入官网提供的命令 yum ...

  10. ubuntu ssh root登陆

    原文:https://blog.csdn.net/wy_97/article/details/78294562 1.默认使用ubuntu用户登录,密码为服务器配置时设置的密码,可在重置密码中修改 2. ...