C语言很久之前学过,但是长时间没有复习,对于其中的一些概念,变得模棱两可。因此有必要温习一下。从今天开始,写一个C语言复习系列。这个系列从C语言变量开始。
C语言属于高级程序语言,但是,与其他高级程序语言相比较而言,算是较为低级的了。因此,在写操作系统、单片机嵌入式系统中,C语言仍然发挥着重要作用。
变量是C语言中的非常重要的一部分。从更底层的角度来讲,变量体现在内存中的数据可以覆盖或者变化。计算机通过地址,来确定所分配内存的数据。变量从汇编语言程序的角度来讲,又称之为标识符。通过变量,程序员能够更加容易的操作内存中的数据。下面分析如下程序:
#include <stdio.h>
int main(){
int i = 8;
printf("%d\n",&i); //输出结果为6487572
int j = 3;
printf("%d\n",&j); //输出结果为6487568
i = j;
printf("%d\n", &i); //输出结果为6487572
printf("%d\n", i); //输出结果为3
int *p = &i;
printf("%d", *p); //输出结果为3
}
通过“&”,可以求得变量i所代表的的数据的存储地址。由输出可知,两个变量i,j的存储地址不同。对i进行赋值,再次求变量i的地址,可得与初始化的地址相同。通过把该地址赋值给相应的指针变量,可以求得该地址的存储数据为3。
因此,可得出结论,变量与内存的地址是深深地绑定在一起的,对变量进行赋值,就是对该地址的数据进行更改。
也就是说C语言中的变量,不变的是变量的地址不发生改变;变的是地址中的存储的数据发生改变。