转载

磨磨唧唧的C语言 : 闹心的变量(上)

第三节 闹心的变量

不得不说,C语言里面最闹心的就属变量了。变量的数据类型、变量名、变量的初值、变量的地址……对于初学者来说,这些抽象的概念,都非常难以理解。在去年夏天的网络课程中,我也是专门花了一节课多的时间给大家来讲解变量。但是还有有不少的同学来找我问,到底什么是变量。 但是具体什么是变量呢?虽然很多教科书上喜欢说变量是一种容器,但是这种比喻在后期我们学习数组的时候就会变得抽象。我更倾向于把变量比喻成饭碗或者饭盒。那么我们既然把变量比喻成了饭盒,那么我们就要给这个饭盒贴一个商标,那么这个商标就叫做变量名。那么我们都知道,商品的商标是唯一的,一个商品一般只有一个商标,而且这个商标是不能和已经有的其他商标重复的。那么变量名也有这样的特点。变量名是唯一。在生活中,我们经常会用某些品牌的商标来指代产品。那么在程序中也是一样,我们要用变量名指代变量。那么变量名的命名规则呢,我们这里称为C语言标识符命名规则,这个规则如下: 1.标识符由英文字母、数字和下划线组成,区分大小写 2.标识符的第一位不能是数字 3.C语言的保留字不能作为标识符。 这里我们的变量名就属于标识符的一种。之后我们还会学到其他种类的标识符,命名规则类似。 这里我们说的C语言的保留字(也有 关键字 的叫法)包括的内容请看 附录2 。 另外呢,虽然标识符可以命名为库函数名和预编译处理命令,但是如果那么做了,库函数名和预编译处理命令,就会失去本来系统已经规定好的原意。至于什么是库函数名和预编译处理命令我们后面还会详细的讲解。在近期我们统一 使用按照字母表顺序的小写字母作为标识符 。等到我们讲完C语言的基础知识,我们就可以尝试使用较为正式的标示符作为变量名了。 说了这么多,我们还没有讲怎么使用变量呢。我们既然把变量比喻成饭盒,我们就现需要买一个饭盒。在C语言中我们把这个类似于买饭盒的过程叫做 定义变量 。(也有称为 声明变量 的说法)商店里面的商品琳琅满目,饭盒的种类也多种多样,有塑料的,有铝质的等等。那么我们的变量的种类也是多种多样的。那么我们现在暂时先接触一种最简单,最基本的变量——整型变量。 整形变量的概念和整数有一点儿像,但是又不完全一样。如果把变量比喻成饭盒,那么数据就可以比喻成饭菜。如果一个数据是整数,那么我们就要用整型变量来盛放它。这就像我们生活中,盛汤的有汤碗,盛饭的有饭碗一样。专碗专用。那么变量也是这样,某一类型的变量就专门用了盛放某一类型的数据,不能混用。(也有混用的情况,但是暂时还不涉及) 闲言少叙,直接看下面的例子:

例1-5
#include<stdio.h> main(){     int a;     a=5;     printf("整型变量a的值是%d/n",a);     system("pause");  } 

那么在这个程序里面 printf("整型变量a的值是%d/n",a); 是我们非常熟悉的内容,这里面的新内容只是把参数列表里面的数字和式子换成了变量名a, int a; 这一条语句的含义是定义一个变量名为a的整型变量,就相当于我们去商店买饭盒的过程。 a=5; 叫做赋值语句,它的含义是把整数数值5赋值给a,相当于我们用饭盒盛饭的过程。更详细的解释就是,我们用了一个商标是a的饭盒成了饭,这里面的饭就是5这个数。接下来就到了我们熟悉的这一步 printf("整型变量a的值是%d/n",a); 这里引号里面的 格式化字符串 除了转义字符和格式说明符以外的部分原样输出,遇到 %d 格式说明符应该用后面 参数列表 里面的值去替换,参数列表里面有一个 a ,那么 a 恰巧又是个变量名。之前讲解过,变量会被变量名所指代,那么反过来看到变量名应该想到这个变量名代表的变量,那么a所代表的变量里面的数值的整数5,那么这个%d就会被5替换。最后遇到转义字符/n,它是个换行符,运行结果如图1-7所示。 图1-7

磨磨唧唧的C语言 : 闹心的变量(上)

如果搞明白上面的内容,我们就可以进一步学习更有趣儿的东西了。我们接着再做一次例1-4的那个例子,但是这次我们使用变量。

例1-6
#include<stdio.h> main(){     int a;     int b;     a=8;     b=5;     printf("%d+%d=%d/n",a,b,a+b);     printf("%d-%d=%d/n",a,b,a-b);     printf("%d×%d=%d/n",a,b,a*b);     printf("%d÷%d=%f/n",a,b,a/b);     system("pause");  } 

图1-8

磨磨唧唧的C语言 : 闹心的变量(上)

运行我们的例1-6就会得到如图1-8的结果,除了8÷5之外的大获成功。那么似乎我们遇到了和昨天类似的问题,就是

正文到此结束
Loading...