有了上面两篇的基础现在我们开始接触变量。
先想一个问题,为什么hello world程序没有涉及变量?
因为C语言的程序就是对数据的存储、处理、输入、输出的过程,那么哪一个是必须有的呢?显然是输出。别的都可以没有,但是输出必须有,一个没有输出的程序是没有意义的。很简单的道理,数据处理了,没看到结果,显然没有意义。所以hello world程序是最简单的C语言程序,它只有一个输出语句。如果C语言只能做这种事,功能也太弱了,所以这一节学习让C语言变得强大的概念——变量。因为有了变量,程序就能实现数据的存储,运算,输入,输出这四个功能了。
基础的变量类型有三大类:整数类型,小数类型,字符类型。意思比较显然,先理解表面意思即可。
这节我们先学一种变量——整数类型。
读者可能会抱怨:光会整数变量的处理不够用啊,万一我要计算1.3+5.4怎么办?好吧,先别着急,先学会1+1,再学1.3+5.4,其实学会了整数类型,其他类型都可以触类旁通。
首先说明一点,变量在计算机中是以怎样的形式存在的。当然是以011110000这一类二进制码存在的,所以你要使用一个变量,每种类型的变量需要的位数(也就是占的空间大小)不一样,所以你在使用一个变量之前,必须先告诉计算机这个变量是什么类型的,也就是定义变量。你定义了一个变量之后,计算机就会为你开一块空间来存储这个变量,你为它定义的变量名就是你使用它的载体。也就是变量的“先定义,后使用”的原则。好吧,这一段可能有点抽象,可以先看完下面的再回过头来看看这里,是不是这么回事。
一、如何定义整数类型
定义整型变量的语句是
int name;
name是你自己起的变量名,理论上讲随便起什么名都可以,只要不是以数字开头、没有汉字就行。为了让读者印象深刻,下面定义一个叫做liupeng的整型变量:
int liupeng;
下面写一下模板有利于读者理解。
#include<stdio.h> int main(void) { int liupeng; return 0; }
这样,系统就会为liupeng开4个字节的内存,下面就可以使用liupeng这个变量了。
二、如何使用整型变量
对整型变量的操作主要有三种:赋值,输入,输出。
1.赋值
对变量的赋值用"=",用法与我们平时的等号略有不同,它的作用是把等号右边的值赋值给左边,所以说左边只能出现一个变量,而右边可以是一个变量,一个常量,也可以是一个表达式。可以用下面的程序理解一下。
#include<stdio.h> int main(void) { int liupeng; liupeng=7; /*执行完这一句之后liupeng=7*/ liupeng=4; /*执行完这一句之后liupeng=4*/ liupeng=liupeng+1; /*执行完这一句之后liupeng=5*/ liupeng=liupeng/2; /*执行完这一句之后liupeng=2,这里比较特殊,在整数类型的运算里,除号默认是整除符号*/ return 0; }
上面涉及到的几个语句都是变量的运算,跟数学表达式差不多,基本上就是两个区别:一个是赋值号,是右边的值存到左边里;一个是累计运算,比如liupeng=liupeng+1,让liupeng累加了1,累除也是同理。
2.输出
对于变量的输出方式与原先略有不同,对于整数变量来说是这样输出一个整数
printf("%d",name);
你也许会问:%d是搞什么?解释一下,%d的意思是这里要以整数的形式输出一个数,这个数就是逗号后面的那个liupeng.
比如对于上一个程序来说,你就可以用输出来检验一下我的注释对不对。
#include<stdio.h> int main(void) { int liupeng; liupeng=7; /*执行完这一句之后liupeng=7*/ printf("%d ",liupeng); liupeng=4; /*执行完这一句之后liupeng=4*/ printf("%d ",liupeng); liupeng=liupeng+1; /*执行完这一句之后liupeng=5*/ printf("%d ",liupeng); liupeng=liupeng/2; /*执行完这一句之后liupeng=2,这里比较特殊,在整数类型的运算里,除号默认是整除符号*/ printf("%d ",liupeng); return 0; }
屏幕的输出结果是
7 4 5 2
如果把 去掉,那么输出结果就成了
7452
显然,控制输出是很重要的。
那么下面的程序会输出什么呢?
#include<stdio.h> int main(void) { int liupeng; liupeng=7; /*执行完这一句之后liupeng=7*/ printf("第一句之后%d ",liupeng); liupeng=4; /*执行完这一句之后liupeng=4*/ printf("第二句之后%d ",liupeng); liupeng=liupeng+1; /*执行完这一句之后liupeng=5*/ printf("第三句之后%d ",liupeng); liupeng=liupeng/2; /*执行完这一句之后liupeng=2,这里比较特殊,在整数类型的运算里,除号默认是整除符号*/ printf("第四句之后%d ",liupeng); return 0; }
当然,要运行这个程序,你的编译器必须支持汉语输出,请读者写出运行结果,再理解printf函数。
点击下面的按钮打开答案
第一句之后7
第二句之后4
第三句之后5
第四句之后2
好了,这一节先讲这些,输入下节再讲。