Edgar Wang's Wonderland!

分享成长过程中的点点滴滴!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

  今天,我们来介绍变量。接下来,我将通过两个非常简单的例子来说明。注意:这里的两个例子也将会在以后几篇博客中用到。

  首先,我们来看下面两个例子。

程序一:

 1 #include <stdio.h>
2
3 int main(void)
4 {
5 int sum, num;
6 int min, max, step;
7
8 min = 0;
9 max = 100;
10 step = 2;
11
12 num = min;
13 sum = 0;
14 while (num <= max)
15 {
16 sum = sum + num;
17 num = num + step;
18 }
19 printf("the sum is %d.\n", sum);
20
21 return 0;
22 }

程序二:

 1 #include <stdio.h>
2
3 #define MIN 0
4 #define MAX 100
5 #define STEP 2
6
7 int main(void)
8 {
9 int sum = 0;
10 int num = 0;
11
12 for (num = MIN; num <= MAX; num = num + STEP)
13 {
14 sum = sum + num;
15 }
16 printf("the num is %d.\n", sum);
17
18 return 0;
19 }



一.变量的声明

  变量,顾名思义,就是可以变化的量,任何一个稍微有点用的程序都离不开变量。由于在C语言中,所有的变量都必须“先声明,再使用”,所以我首先介绍下变量的声明方法。请看程序一中的main()函数中的前两条语句:

  int sum, num;

  int min, max, step;

这两句简单的体现了声明变量的通用方法。变量的声明由类型名和变量名这两部分构成。上面两句中的int就是类型名,而sum、num等就是变量名。

 

1.数据类型

  类型名说明了变量的数据类型,而数据类型则说明了一个变量在内存中所占空间的大小、在内存中的存储方式和这个变量可以进行的操作。同时C语言也是一种对数据类型要求比较严格的语言,所以对程序员来说选择适当的数据类型是完全必要的。适当的数据类型不

但可以节省内存空间,而且可以减少操作时间。C语言中主要有以下几种数据类型:

  char  字符型,可以存储*, &等符号,占一个字节

  short, int, long   分别是短整型、整型和长整型,用来存储整数,它们的大小由你所使用的机器决定,但是它们的大小必然满足以下规律:short ≤ int ≤ long(char ≤ short)。

  float, double   分别是单精度浮点数和双精度浮点数,用来存储实数(可以带有小数点),它们的大小和存储方式都由机器决定。

  unsigned  它可以与上面三种整型类型名同时使用,用来定义只能存储非负整数的变量

 作为一名程序员,知道你所使用的平台的不同数据类型的大小是一项基本功,它有利于你写出正确且高效的代码。要想准确知道你所使用平台上的数据类型的大小,可以阅读limits.h这个头文件。

 

2.变量名

  变量名其实只是一个符号,在符合规范的前提下可以任取,对编译器而言名字的长度、含义的清晰与否等没有影响。但是,在写实际的代码时,所有的程序员都十分看重代码的整洁和清晰,因为你写出的代码主要是为了让其他程序员也可以比较容易读懂。尤其是在

大项目,个人的力量有限,必须要多人一起合作,此时代码的清晰就异常重要了。而变量名的选取则是增强代码清晰度的一个很重要的方面。所以,一个有意义的变量名是十分重要的。

 

二.变量的初始化和赋值

  一个变量如果要发挥它的作用,自然要有值,而且这个值还要有意义,那么该如何让变量获得有意义的值呢?我们有两种方法可以实现,分别是初始化和赋值。

 

1.初始化

  变量的初始化是指在声明变量的同时就让变量拥有了有意义的值。如:

  int sum = 0;

  int num = 0;

这两句就是典型的初始化语句。那么没有初始化的变量是否有值呢?让我们看一下下面的代码及结果吧。

代码:

 

initial
 1 #include <stdio.h>
2
3 int main(void)
4 {
5 int initial = 100;
6 int uninitial;
7
8 printf("initial=%d uninitial=%d\n", initial, uninitial);
9
10 return 0;
11 }

结果(不同机器可能有不同效果):

 

由上我们可以看出,无论变量是否进行了初始化,它都会有一个初值;同时我们也看到初始化后的变量的值是我们确定的,而没有初始化的变量的值是一个不确定的随机值。


2.赋值

  除了初始化外,我们还可以通过赋值的方式来使变量获得有意义的值。变量的赋值有多种形式,如:

 

  min = 0;  max = 100;  step = 2;
  sum = sum + num;
以上都是赋值语句,我们可以看到对变量赋值时,既可以直接赋给变量一个现成的值,也可以在 "=" 后跟一个表达式。我们在赋值时应当注意不同数据类型之间的转化,下面代码只是其中的一种情况。
代码:

int&float
 1 #include <stdio.h>
2
3 int main(void)
4 {
5 int int_num;
6 float float_num;
7
8 int_num = 3.987;
9 float_num = 256;
10
11 printf("int_num=%d float_num=%f\n", int_num, float_num);
12
13 return 0;
14 }

结果:

可以看出,将浮点值赋给int变量时小数部分会被直接省略,而不是四舍五入;同样的整数赋给float变量时也会自动转化为float型。
今天就说到这里,水平有限,欢迎指出不足之处。



posted on 2011-12-10 21:19  Edgar Wang  阅读(1091)  评论(3)    收藏  举报