山不在高,有仙則名。水不在深,有龍則靈。 ----CSDN 時時三省
存放地址的變量是指針變量,它用來指向另一個對象(如變量、數組、函數等)。
那么,怎樣定義和使用指針變量呢?
先分析一個例子。
例題
通過指針變量訪問整型變量。
解題思路:
先定義2個整型變量,再定義2個指針變量,分別指向這兩個整型變量,通過訪問指針變量,可以找到它們所指向的變量,從而得到這些變量的值。
編寫程序:
運行結果:?
程序分析:
( 1 )在開頭處定義了兩個指針變量pointer _ 1和pointer _ 2。但此時它們并未指向任何一個變量,只是提供兩個指針變量,規定它們可以指向整型變量,至于指向哪一個整型變量要在程序語句中指定。程序第6,7兩行的作用就是使pointer _ 1指向a,pointer _ 2指向b,此時pointer _ 1的值為& a(即a的地址),pointer _ 2的值為&b。
( 2 )第8行輸出變量a和b的值100和10。第9行輸出*pointer_1和*pointer_2的值。其中的“*”表示"指向"。* pointer _1表示“指針變量pointer _1所指向的變量”,也就是變量a。* pointer _ 2表示“指針變量pointer 2所指向的變量”,也就是變量b。從運行結果看到,它們的值也是100和10。
( 3 )程序中有兩處出現* pointer _ 1和* pointer _ 2,二者的含義不同。程序第5行的* pointer _ 1和*pointer_2表示定義兩個指針變量pointer 1和pointer 2。它們前面的“*”只是表示該變量是指針變量。程序最后一行printf函數中的* pointer l和* pointer _2則代表指針變量pointer _ 1和pointer _2所指向的變量。
注意:定義指針變量時,左側應有類型名,否則就不是定義指針變量。例如:
int * pointer _ 1 ;