阅读 ‧ 电子书库 变量:名称、地址以及数值
在前文有关指针的讨论中,变量名称、地址以及数值之间的关系是其关键所在。下面我们将对此进行深入讲解。
编写程序时,一个变量一般有两种属性:变量名和数值(当然还有其他属性,如数据类型等,但它们与这个主题无关)。程序被编译和加载后,同一个变量在计算机中的两个属性是地址和数值。变量的地址可以被看作是在计算机中变量的名称。
在许多编程语言中,变量地址只由计算机处理,对于编程人员来讲完全不可见。但是在C中,可以使用运算符&对变量的地址进行操作。
&barn就表示变量barn的地址。
可以通过使用变量名获得变量的数值。
例如printf(“%d\n”,barn)输出的是barn的数值。
当然,也可以通过使用运算符*从地址中获取相应的数值。
对于语句pbarn=&barn;,*pbarn是存储在地址&barn中的数值。
总之,普通的变量把它的数值作为基本数值量,而通过使用运算符&将它的地址作为间接数值量。但是对于指针来讲,地址是它的基本数值量,使用运算符*后,该地址中存储的数值是它的间接数值量。
某些读者也许会将地址打印出来以满足好奇心,但这并不是&运算符的主要用途。更重要的是,使用&、*和指针可以方便地操作地址以及地址中的内容,如程序swap3.c(程序清单9.15)中所示。