变量和常量

变量(Variable)

C语言中的变量主要是指标识符,该标识符用于根据其数据类型存放在内存某一个块中。关于变量在内存中如何存放,我们当前不需要去深入了解,我们只需要知道,变量就是一个标识符,它被计算机放在内存中即可。

下面简单了解一下,不同类型的变量在内存中所占大小。

int x, y, z;  
/* 因为int类型大小为4个字节,所以x,y 和 z这三个变量在内存中分别占用4个字节的内存空间 */
 
char ch;      
/* char类型大小为1个字节,所以ch变量在内存中占1个字节的内存空间 */
 
float fl; 
/* 浮点类型大小为4个字节,因此fl变量在内存中占4个字节的内存空间*/

这里的int,char,float是数据类型,这些数据类型用于固定变量的内存大小。类型名称是C语言的保留关键字,是固定的,变量名可以根据C语言标识符的规则以及我们自身的需求来自行定义。

变量声明

语法:

DataType   variable_name; 

DataType,即数据类型;variable_name,即变量名。例如:

int x;    /* 声明一个变量名为x的整型变量  */
char ch ; /* 声明一个变量名为ch的字符变量 */

变量初始化

在声明变量的同时,给变量赋一个初始的值。这个操作,我们称之为变量的初始化。

int x=5; /* 初始化变量x值为5 */
 
char ch='a' ; /* 初始化字符变量ch为'a' */ 
 
int y;  /* 声明变量y */
y=5;    /* 这不是初始化,这叫赋值 */

注意事项:

—在除extern之外的大多数存储类中,变量都是使用一些默认数据或垃圾数据初始化的。在外部存储类中,必须初始化已声明的变量以获取内存。

—仅在声明时赋值时才认为是初始化。

—有时必须进行初始化,否则在编译期间将无法开辟内存空间(例如:extern变量,将在storage类中查找)。

变量命名规则

变量命名规则与标识符一样,详见上一节关键字和标识符

常量(Constant)

顾名思义,常量是在整个程序中不能更改的标识符。如果声明变量时使用了const关键字,则该变量在程序中也属于常量。

常量分为以下几类:

  1. 整数常量
  2. 浮点型/实际值常量
  3. 字符常量
  4. 字符串常量
  5. 转义序列常数

整型常量

整型常量进一步分为3类:

  1. 十进制整型常量
  2. 八进制整型常量
  3. 十六进制整型常量

十进制数常量

  • 由数字0到9组合而成的所有数字都称为十进制数字,例如10、12039、1253787289等。
  • 如果十进制数很长,那么我们可以在数字的末尾使用l或L,例如123637L或12789l。
  • 如果十进制数字是无符号的,那么我们可以在数字的末尾使用u或U,例如123637U或12789u。
  • 如果十进制数字长且无符号,那么我们可以在数字的末尾使用ul或UL,例如123637UL或12789ul。

八进制常量

  • 八进制数字由数字0到7组合而成,逢八进一。
  • 前缀为0的任何数字均被视为八进制数字。
    示例:C语言中015,012,014,017不会被视为十进制数,而是会被视为八进制常量,因此请务必小心。

十六进制常量

在计算机领域,处理的所有内容都是二进制数。由于大的二进制数读起来很麻烦,因此十六进制数字就提供了一种简便的方式来表示二进制数据。一个十六进制数字表示的范围是十进制数 0 到 15,所以,用字母 A 到 F 来代表十进制数 10 到 15。十六进制整数中的 1 个数字就表示了4位二进制位,两个十六进制数字就能表示一个字节。

由以下数字组合而成的十六进制数。
0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,F
示例:0x01、0x04、0x1F,0x0A,0x0C

实际值常量

如下所示,带小数点或指数的常数是实数或浮点常数。

-1.234
+1.234
123.4e-2
1.00000
0.001

字符常量

单引号('')括起来的单个字符是一个字符常量。

'1'
'2'
'3'
'a'
'A'

字符串常量

双引号("")括起来的字符序列是字符串常量。

"1"
"2"
"3"
"good job"
"C is a programming Language"

转义字符常量

以下为转义字符常量。

转义字符 含义
/t 水平制表符
/v 垂直标签
/r 回车
// 反斜杠
/b 退格键
/F 换页
/' 单引号
/? 问号
/" 双引号
下一节