2.3、变量定义

By | 2014年12月27日

在上一篇文章中,我们了解了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这个盒子中

2014-12-27 19 39 09

或许将等号换成<-更好理解,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两个变量没有被初始化就使用了。

现在的编译器已经足够智能到帮我们找出这种错误了,但是这部意味着编译器能将所有的错误都找出来。

所以我们在编程时还是要小心小心再小心!

最后,还有几点需要注意

第一个是变量的命名,一定要遵循命名的规范,不要使用拼音

第二个是,已经被使用了的变量名不能在另一个地方再次定义(准确的说是在“作用域”内,相关知识将在后面学到)

发表评论

邮箱地址不会被公开。 必填项已用*标注