定义变量
回顾
昨天我们使用了printf()
函数来输出"Hello Word!"
其实我们也可以用printf()
函数来进行一些计算如下:
#include<stdio.h>
int main()
{
printf("23+33=%d\n",23+33);
return 0;
}
结果如下:
这样我们会有疑问如果这写的话我们想改变数值就要重新编译然后运行,那么怎样才能让我们在运行后输入我们想计算的数值,而不是在程序中给指定的数值呢。
其实我们要考虑一下这样的前提需要什么:
- 我们可以假想一个地方存放我们想要的数字
- 将我们想要的数字输入到程序当中去
- 输入的数字能参与到计算当中去
变量
要满足我们上面的三点首先我们要将数字存放到变量当中去。
接下来我们看一段程序:
#include<stdio.h>
int main()
{
int age= 0;
printf("小明今年多少岁:");
scanf("%d",&age);
int tenyear = age + 10;
printf("小明十年后%d岁",tenyear);
return 0;
}
这段程序计算了当我们给定小明今年的年龄后十年以后小明的年龄。
那么int age= 0;
这一行定义了一个变量。变量的名字叫做year
,类型是int
,初始值是0。
变量是一个保存数据的地方,当我们需要在程序里保存数据时,比如上面的例子中要记录用户输入的小明今年的年龄,就需要一个变量来保存它。用一个变量保存了数据,它才能参加到后面的计算中,比如计算十年后的年龄。
变量定义
变量定义的一般形式就是:<类型名称><变量名称>
;
例如:
int age;
int age,tenyear;
变量的命名
变量需要一个名字,变量的名字是一种“标识符”,意思是它是用来识别这个和那个的不同的名字。
标识符有标识符的构造规则。基本的原则是:标识符只能由字母、数字和下划线组成,数字不可以出现在第一个位置上,c语言的关键字(有的地方叫它们保留字)不可以用做标识符。
保留字:
auto | break | case | char |
const | continue | default | do |
double | else | enum | extern |
float | for | goto | if, |
int | long | register | return |
short | signed | sizeof | static |
struct | switch | typedef | union |
unsigned | void | volatile | while |
inline | restrict |
赋值和初始化
在int age= 0;
这一行当中我们用到了=
在这里他的意思就是将等号右边的赋值给左边。
赋值
和数学不同,a=b在数学中表示关系,即a和b的值一样;而在程序设计中,a=b表示要求计算机做一个动作:将b的值赋给a。关系是静态的,而动作是动态的。在数学中,a=b和b=a是等价的,而在程序设计中,两者的意思完全相反
初始化
当赋值发生在定义变量的时候,就像程序中的int age= 0;
,就是变量的初始化。虽然c语言并没有强制要求所有的变量都在定义的地方做初始化,但是所有的变量在第一次被使用(出现在赋值运算符的右边)之前被应该赋值一次
输入函数
scanf("%d",&age);
要求scnaf
这个函数读入下一个整数,读至的结果赋值给变量age
注意:age
前面的&