山不在高,有仙则名。水不在深,有龙则灵。 ----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 ;