C语言的常量与变量详细解读

常量和变量

知识点

  1. 常量、变量、常变量、标识符?

内容

一、常量

定义:在程序运行过程中,其值不能被改变的量称为常量。

常用常量有以下几类:

  1. 整型常量
    1. 十进制整数形式
      1. 例如:234,-123
  2. 实型(浮点型)常量
    1. 十进制小数形式:由数字、小数点组成
      1. 例如:2.345、-23.345
    2. 指数形式:如:1.23e2(相当于1.23 x 10²)
      1. 由于在计算机输入输出时,无法表示上角或下角。故规定以字母e或E代表以10为底的指数。但应注意:e或E之前必须有数字,且e或E后面必须为整数。
  3. 字符型常量
    1. 普通字符:使用单引号括起来,例:'a'
      1. 字符常量是以字符对应的ASCII码值的二进制补码形式存储在计算机内存单元中,字符占1个字节。
        1. 例如:字符'a'的ASCII码值为97,补码为:01100001
    2. 转义字符:常用\开头的特殊字符,意思是将\后面的字符转换成另外的意义
      1. 常用的转义字符:
        1. \'表示单个单引号
        2. \"表示单个双引号
        3. \\表示\
        4. \?表示?
        5. \n表示换行
        6. \t表示将输出的位置跳到下一个tab位置,一个tab位置为8列
        7. \o、\oo、\ooo,其中o代表一个八进制数字:表示与该八进制码对应的ASCII字符
          1. 例如:转义字符'\101',表示ASCII字符'A'
        8. \xh[h...],其中h代表一个十六进制数字:表示与该十六进制码对应的ASCII字符
          1. 例如:转义字符'\x41',表示ASCII字符'A'
      2. 注意:可以表示任何可显示的字母字符、数字字符、专用字符、图形字符和控制字符。
  4. 字符串常量:用双引号把若干字符括起来

从其字面形式上即可识别的常量称为“字面常量”或“直接常量”,字面常量是没有名字的不变量。(以上常量皆是字面常量)

  1. 符号常量:用# define指令,指定用一个符号名称代表一个常量。
    1. 例如: # define PI 3.1416
      1. 注意:
        1. 行末没有分号;
        2. 习惯上符号常量用大写表示;
      2. 解析:
        1. 在对程序进行编译前,预处理器先对PI进行处理,把所有的PI全部置换为3.1416。
    2. 在预编译后,符号常量已全部变成字面常量。
    3. 符号常量不占内存,只是一个临时的符号,在预编译后这个符号就不存在了。

 

二、变量

定义:变量代表一个有名字的,具有特定属性的一个存储单元。

功能:它用来存放数据,也就是存放变量的值。

特点

  1. 在程序运行期间,变量的值是可以改变的。
  2. 变量必须先定义,后使用。
  3. 变量不能重复定义。

 

解读

       变量名实际上是以一个名字代表的一个存储地址。在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。

 

三、常变量

C99允许使用常变量。

定义常变量

const 数据类型 常变量名 = 常变量值;

注意:通常常变量名全部大写表示。

问题:常变量与常量区别?

  1. 常变量具有变量的基本属性:有类型,占存储单元,只是不允许改变其值。
  2. 常变量是有名字的不变量,常量是没有名字的不变量。

问题:符号常量与常变量的区别?

  1. 符号常量使用# define预处理指令定义,指定用一个符号名称代表一个常量。它是一个临时符号,在预处理后,符号常量已全部置换为字面常量(符号常量不存在了)。符号常量不占存储单元。
  2. 常变量,占存储单元,有变量值,但该值不能改变。
  3. 推荐使用常变量,少使用符号常量。

 

四、标识符

       C语言规定标识符只能由字母、数字、下划线组成,且不能是数字开头。也不能使用C语言之中的保留字或关键字作为标识符。C语言对大小写是严格区别的。

 

有道云笔记链接更详细:常量和变量

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的