2.1、变量、常量

By | 2014年12月14日

数据类型可以分为常量变量两种

常量

顾名思义,常量就是值不能改变的量。比如我们在编程中直接使用的数字,字符串。

就像hello world程序中写的,printf(“hello world”);中的”hello world”便是一个字符串常量。

常量可以分为两种,一个是符号常量,一个是直接常量

直接常量就是像上面那样的字符串,还有直接给出的数字,比如3.14159。

至于符号常量,则是我们使用标志符去代表一个直接常量。

我们用define来定义符号常量。

现在请看下面一个程序

#include <stdio.h>
#include <stdlib.h>

#define PI 3.14
int main()
{
    int r = 10;
    double s;
    s = PI * r * r;
    printf("半径r=%d\n圆周率PI=%f\n面积S=%f",r,PI,s);
    return 0;
}

请复制到编辑器中,保存编译并执行。观察结果后再继续往下看。

这个程序可以用来计算圆的面积,在这个程序中,我们使用了直接常量和符号常量。那个PI便是符号常量。而后面的半径10则是直接常量。

很显然,使用符号常量有助于增强代码的可读性,毕竟如果你扔一大串数字在上面,鬼知道你那些数字哪儿来的,又代表着什么。而通过“PI”却可以猜出,这可能是圆周率(如果在后面使用注释,那么就可以肯定这是圆周率了)。

使用符号常量还有个好处,就是方便值的修改。例如上面的程序中,我们两次使用到了PI的数值

在程序编好后,我们又想修改PI的值(例如发现PI的精度不够,希望改成3.14159265),那么我们只需要在定义的地方进行修改,这样程序中所有使用到PI的地方,值都自动变化了。如果我们使用的是直接常量,那么你就需要一一进行修改,程序短还好说,如果我们哪天写了一个10w行的程序,再对它进行这种修改的话,那简直是一场噩梦!

使用define定义符号常量的格式为

#define 符号常量的名字    所代表的直接常量

define定义的符号常量会在编译的时候被替换(严格的说是在预处理阶段),我们从上面一章的岔路口中的实验可以很清晰的看出来。所以实际上最后交给编译器去处理的,还是直接常量。

请参照上面的例子程序,试着完成下面的程序

计算自由落体运动t时间时的速度,已知重力加速度g=10m/s(请使用符号常量)

t=5s,t时刻的速度为v=g*t

变量

变量当然就是可以改变的量咯。

变量的实质是内存上的一小块储存区域,这个区域的大小根据不同的数据类型有区别。而我们修改变量的值也正是修改这个内存区域中的数据。

变量是一个程序很重要的组成部分,因此本章很大一部分都将介绍变量的内容

关于更多变量的内容,我们将在下面学习

发表评论

电子邮件地址不会被公开。 必填项已用*标注