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语言入门教程-(5)格式化输入输出

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

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

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

  7. Go语言入门教程(十)之函数

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

  8. c语言该怎么入门?C语言入门教程(非常详细)

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

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

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

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

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

随机推荐

  1. HDU 1425 sort(堆排序/快排/最大堆/最小堆)

    传送门 Description 给你n个整数,请按从大到小的顺序输出其中前m大的数. Input 每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不 ...

  2. hibernate-HQL连接查询

    和SQL查询一样,HQL也支持各种各样的连接查询, 如内连接.外连接. 实例: package Test; import static org.junit.Assert.*; import java. ...

  3. Alpha版本十天冲刺——Day 2

    站立式会议 会议总结 队员 今天完成 遇到的问题 明天要做 感想 鲍亮 学习post请求连接服务器,学习git 无 http资源请求方法封装,完成Android验证码获取接口和登录验证接口 今天满课, ...

  4. EasyUI——常见用法总结

    1. 使用 data-options 来初始化属性. data-options是jQuery Easyui 最近两个版本才加上的一个特殊属性.通过这个属性,我们可以对easyui组件的实例化可以完全写 ...

  5. HBase与MongDB等NoSQL数据库对照

    HBase概念学习(十)HBase与MongDB等NoSQL数据库对照 转载请注明出处: jiq•钦's technical Blog - 季义钦 一.开篇 淘宝之前使用的存储层架构一直是MySQL数 ...

  6. 获取字符串中每个字符出现的次数(利用TreeMap)

    案例:"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)分析1:定义一个字符串(可以改进为键盘录入)2:定义一个 ...

  7. JQuery遍历方法$.each输出函数

    each()方法能使DOM循环结构简洁,不容易出错.each()函数封装了十分强大的遍历功能,使用也很方便,它可以遍历一维数组.多维数组.DOM, JSON 等等在javaScript开发过程中使用$ ...

  8. 最好的vim教程莫过于vimtutor

    最好的vim教程莫过于vimtutor 直接运行vimtutor即可

  9. Unity Particle System Sorting Order

    http://answers.unity3d.com/questions/577288/particle-system-rendering-behind-sprites.html

  10. MinGW: TOO MANY SECTIONS issue

    http://sourceforge.net/p/mingw-w64/mailman/mingw-w64-public/thread/509A38C6.6070807@doxos.eu/ MingGW ...