32-间接运算符
9.7.1 间接运算符:*
假设已知 ptr 指向 bah ,如下所示:
ptr = &bah;
然后使用间接运算符(indirection operator)找出存储在 bah 中的值,该运算符有时也称为解引用运算符(dereferencing operator)。不要把间接运算符和二元乘法运算符()混淆,虽然它们使用的符号相同,但语法功能不同。
val = *ptr; // 找出ptr指向的值
语句 ptr = &bah; 和 val = * ptr; 放在一起相当于下面的语句:
val = bah;
由此可见,使用地址和间接运算符可以间接完成上面这条语句的功能,这也是“间接运算符”名称的由来。
小结:与指针相关的运算符
地址运算符:&
一般注解:
后跟一个变量名时, & 给出该变量的地址。
示例:
&nurse 表示变量 nurse 的地址。
**间接(或解引用)运算符:***
一般注解:
后跟一个指针名或地址时,*给出存储在指针指向地址上的值。
示例:
nurse = 22;
ptr = &nurse; // 指向nurse的指针
val = *ptr; // 把ptr指向的地址上的值赋给val
执行以上3条语句的最终结果是把22赋给 val 。