变量-能被改变的量
- 变量代表一个有名字的、具有特定属性的一个存储单元。
- 变量用来存放数据, 也就是存放变量的值。
- 在程序运行期间,变量的值是可以改变的。
- 变量必须先定义,后使用。
变量的声明
形式:
类型关键字 变量名;
变量的初始化
声明变量的同时为变量赋值称为变量的初始化
未被初始化的变量的值是随机数(乱码)
变量必须先声明,后使用!
一条声明语句可以声明若干个同类型的变量
如下:
int a,b,c,d=0;
最佳编码原则:
标识符的命名规则和程序注释
1.标识符由英文字母、数字和下画线组成, 且必须以英文字母或下画线开头。
2.不允许使用关键字作为标识符,同时标识符也不应与系统预定义的库函数重名。
3.C语言的标识符可以是任意长度。一般也会有最大长度(与编译器相关)限制。
4.标识符应直观、易于拼读、易于记忆,即做到“见名知意”,最好使用英文单词及其组合, 切忌使用汉语拼音。
5.标识符应尽量与所采用的操作系统或开发工具的风格保持一致。例如, Windows应用程序的标识符通常采用“大小写混排”方式, 如MaxValue,
6.而UNIX应用程序的标识符通常采用“小写加下画线”方式,如max_value。不要将两类风格混在一起使用。
7.C语言的标识符是区分大小写(对大小写敏感) 的。
变量的分类:
局部变量:
在大括号内部定义的变量
int main() { int a=10; printf("%d\n",a); return 0; }
全局变量:
在大括号外部定义的变量
int a=100; int main() { printf("%d\n",a); return 0;
当局部变量和全局变量名字冲突的情况下,局部优先
如下代码执行结果为10
int a=100; int main() { int a=10; printf("%d\n",a); return 0; }
不建议把全局变量和局部变量的名字写成一样
常量-在程序中不能改变其值的量
使用宏常量和const变量
在程序中直接使用的常数,称为幻数
使用幻数存在的问题:
1.程序的可读性变差
2.容易发生书写错误,产 生不一致性
3.当常数需要改变时,要修改所有引用它的代码,繁琐,还可能有遗漏
良好的程序设计风格建议把幻数定义为
1.宏常量
2.const变量
优点
1.减少重复书写常数的工作量
2.提高程序的可读性和可维护性
宏常量-用一个标识符号来表示的常量
宏定义:
#define 标识符 字符串
如:
#define PI 3.14159
宏常量存在的问题是什么?
1.没有数据类型,编译器在宏替换时不进行类型检查
2.只进行简单的字符串替换,极易产生意想不到的错误
const double PI = 3.14159;
const变量与宏常量相比的优点是什么?
1.const变量有数据类型,编译器能对其进行类型检查
2.某些集成化调试工具可以对const常量进行调试
#define指令, 预编译指令,它只是用符号常量代表一个字符串,在预编译时仅进行字符替换, 在预编译后,符号常量就不存在了,对符号常量的名字是不分配存储单元的。
常变量要占用存储单元, 有变量值, 只是该值不改变而已。从使用的角度看,常变量具有符号常量的优点, 而且使用更方便。有了常变量以后,可以不必多用符号常量。
变量的类型决定了什么?
1.占用内存空间的大小
2.数据的存储形式
3.合法的表数范围
4.可参与的运算种类
不同数据类型可参与的运算不同
1.整型
加、减、乘、除、求余
2.实型
加、减、乘、除
3.字符型
加、减(整数)
对ASCII码值的运算
4.指针类型
加、减(整数) 和比较运算