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 5920 Ugly Problem

    说起这道题, 真是一把辛酸泪. 题意 将一个正整数 \(n(\le 10^{1000})\) 分解成不超过50个回文数的和. 做法 构造. 队友UHC提出的一种构造方法, 写起来比较方便一些, 而且比 ...

  2. HTML中<meta>标签如何正确使用

    HTML中<meta>标签如何正确使用 如果我们在浏览器中按下F12或者Ctrl+shift+J,便可以打开开发者工具,在element中即可看到<head>元素中有不少< ...

  3. KEGG and Gene Ontology Mapping in Bioinformatic Method

    使用KOBAS进行KEGG pathway和Gene Ontology分析 Article from Blog of Alfred-Feng http://blog.sina.com.cn/u/170 ...

  4. Microsoft SQL Server Management Studio ------------------------------ 附加数据库 对于 服务器

    http://zhidao.baidu.com/link?url=didvEEY86Kap_F9PnRAJMGoLXv63IW1fhElfiOpkkmalJ9mvZoqNULlGKcGHN31y_4z ...

  5. chown -R命令的使用

    chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID:组可以是组名或者组ID:文件是以空格分开的要改变权限的文件列表,支持通配符.系统管理员经常使用chown命令,在将文件拷贝 ...

  6. 【原】react+redux实战

    摘要:因为最近搞懂了redux的异步操作,所以觉得可以用react+redux来做一个小小的项目了,以此来加深一下印象.切记,是小小的项目,所以项目肯定是比较简单的啦,哈哈. 项目效果图如图所示:(因 ...

  7. 获取List集合中最大值的方法

    public static void main(String args[])      {        //Double[] num = { 45.1,45.2 };              Li ...

  8. 自然语言0_nltk中文使用和学习资料汇总

    http://blog.csdn.net/huyoo/article/details/12188573 官方数据 http://www.nltk.org/book/ Natural Language ...

  9. JS实现元素拖动

    实现1 参考文献:http://www.cnblogs.com/cloudgamer/archive/2008/11/17/Drag.html 1.1 拖放效果 <!DOCTYPE html P ...

  10. C++ 函数返回数组指针的问题

    提醒一下:int *func(){int a[10] = {5};return a;}是非法的,因为 a 是局部变量,被申请在系统栈中,局部变量在函数返回后会被销毁,于是你返回的指针指向的是一段已经被 ...