一、变量名
- 对变量的命名与符号常量的命名存在一些限制和约定
- 名字是由字母和数字组成的序列,但第一个字符必须是字母。下划线_被看做字母,通常用于命名较长的变量名,以提高其可读性。
- 大写字母与小写字母是有区别的,x与X是两个不同的名字。在传统的c语言中,变量名使用小写字母,符号常量名全部使用大写字母,这是一个不错的做法
- 保留关键字(保留给语言本身使用的),如if, else, int, float等不能用作变量名
- 变量名要能够尽量从字面上表达变量的用途
- 局部变量一般使用较短的变量名(尤其是循环控制变量),外部变量使用较长的名字
二、声明
- 所有变量必须先声明,后使用
- 一个声明指定一种变量类型,后面所带的变量表可以包含一个或多个该类型的变量。比如:
int lower, upper, step; - 一个声明语句中的多个变量可以拆分在多个声明语句中。比如上面的声明语句可以等价的写成下面的形式:
int lower;
int upper;
int step;
按照这种形式书写代码需要占用较多的空间,但是便于向声明语句中添加注释,也便于日后修改。 - 可以在声明的同时对变量进行初始化。在声明中,如果变量名的后面紧跟一个等号以及一个表达式,该表达式充当对变量进行初始化的初始化表达式。比如:
char a = ‘\n’;
int i = 0;
int limit = MAXLINE + 1;
- 如果变量不是局部变量,初始化表达式必须为常量表达式(程序开始执行之前进行初始化)
- 如果变量是局部变量,每次进入函数或程序块,显式初始化的自动变量都将被初始化一次,其初始化表达式可以是任何表达式
- 默认情况下,外部变量和静态变量将被初始化为0。未经显式初始化的自动变量的值为未定义值(即无效值)
#include <stdio.h>
int a;
static int b;
static int d = 2 + 2;
main()
{
int c;
int f = 2;
int g = f + 2;
printf("%d\t%d\t%d\t%d\n", a, b, d, g);
return 0;
}
- 任何变量的声明都可以使用const限定符限定。该限定符指定变量的值不能被修改。对数组而言,const限定符指定数组所有元素的值都不能被修改。
#include <stdio.h>
int strlen(const char s[]);
main()
{
const int a = 1;
const char msg[] = "warning: ";
return 0;
}
int strlen(const char s[]) {
}