在上一篇文章中,我们了解了c语言变量的类型
现在我们就要开始学习如何定义一个变量。
在编程语言中,分为静态类型语言和动态类型语言。
何为动态类型语言?就是程序在运行时,变量的类型才会确定。这意味着你在定义变量的时候无须指出变量的类型。
静态类型的语言中,变量的类型是在编译时期确定的。也就是说你在声明变量时必须指明变量的类型。
c语言就属于后者
在c语言中,使用 变量类型 变量名 的方法定义一个名为变量名的变量
例如我们需要一个名为ID的(有符号)整形变量
就可以写成:int ID;
下面是各种类型变量的定义方法
int ID; char symbol; float a; double b; long d; short e; unsigned int abc; unsigned long def;
我们还可以一次性声明多个同类型的变量,如我们需要a,b,c,d四个整形变量,则写成: int a, b, c, d;
两个变量名之间需要用逗号隔开,这一句等价于
int a;
int b;
int c;
int d;
我们在定义变量时,还可以同时给他赋值
在c语言中,赋值使用等号,即=
这里的等号和数学意义上的等号完全不同。在数学中,它表示相等,即等式左右两边是完全等价的。
编程中则不然,赋值符号的左右两边是有先后顺序的,它表示将赋值符号(=)右边的值,放入左边。
变量就像可以用来放东西一个盒子,只不过这个盒子是内存上的一块空间。
像这样一个指令,a = 12; 在执行这一步时,cpu会将12这个数字放入a这个盒子中
或许将等号换成<-更好理解,a <- 12
在定义变量的时候赋值,叫做初始化。
为什么要进行初始化呢?要知道你的计算机内存上可不只有你一个程序在运行
a变量所占用的空间,可能是另一个程序刚刚使用过的(这个程序在退出后或不再需要这块内存时,操作系统会将它再分配给需要的程序)
而里面的值是不会在之前某程序使用后清零的,也就是说:在定义变量后,变量的值可能是0,也可能是些乱七八糟的未知数据。如果你的程序在后面直接使用变量a的值,那么就可能因为里面的值是未知的而产生问题。
初始化就可以解决这个问题,在定义后,这个变量马上会被赋予一个我们控制的值,比如0。
在定义变量时初始化可以这样写
int a = 12;
long b = 12345, c=233;
为变量初始化是一个好习惯。
下面一个程序将向你展示,不初始化变量,变量中的值
#include <stdio.h> #include <stdlib.h> int main() { int a, b, c = 0, d = 12; printf("a=%d\nb=%d\nc=%d\nd=%d\n", a, b, c, d); return 0; }
请自己编译这个程序,然后运行。
a和b没有被初始化,而c被初始化0,d则被初始化12
编译器的下方可能有这样的警告
这是在说a和b两个变量没有被初始化就使用了。
现在的编译器已经足够智能到帮我们找出这种错误了,但是这部意味着编译器能将所有的错误都找出来。
所以我们在编程时还是要小心小心再小心!
最后,还有几点需要注意
第一个是变量的命名,一定要遵循命名的规范,不要使用拼音
第二个是,已经被使用了的变量名不能在另一个地方再次定义(准确的说是在“作用域”内,相关知识将在后面学到)