对于普通变量来说,其类型的作用主要有以下几个方面。
程序员写代码时识别用:不涉及强制转换时,知道该变量中应该存放什么类型的数值。
空间大小的说明:比如int为4个字节空间。
存储结构说明: float和int虽然空间大小都是4个字节,但是其存储结构完全不同。
对于指针变量来说,其类型的作用与上面基本一致,只是其类型是由普通类型+星号构成。星号的个数,表明了指针变量的级数,指针变量用来存放地址。当不涉及强制转换时,其对应关系如下。
某类型一级指针变量=该类型一级地址
某类型二级指针变量=& (该类型一级指针变量)
n+1级指针变量=& (n级指针变量)
所有普通变量的地址都是一级地址,所有一级指针变量的地址都是二级地址,依次类推,n级指针变量的地址就是n+1级地址。我们这里必须强调一下,使用指针的目的就是为了更加方便地访问空间,但是如果级数超过3级,实际上不但降低了程序的可读性,也会降低对空间的访问速度,所以过高级数的指针变量没有太大的意义。
int *p=&a;
p中只存放了a首字节地址,但是int说明了p希望访问的空间有4个字节,所以从p所指a的第一个字节向后数3个字节空间,一共4个字节空间才是 实际希望访问的完整空间。