使用指针在函数间通信

C Primer Plus 第9章 函数 9.7 指针简介

坚强是说给别人听的谎言 提交于 2020-02-28 11:46:51
一般来讲, 指针是一个其数值为地址的变量 (或更一般地说是 一个数据对象 )。 正如char类型的变量用字符作为其数值,而int类型变量的数值是整数,指针变量的数值表示的是地址。 如果您将某个指针变量命名为ptr,就可以使用如下语句: ptr=&pooh; /*把pooh的地址赋给ptr*/ 对于这个语句, 我们称ptr指向pooh 。 ptr和&pooh的区别在于前者为一变量,而后者是一个常量。 当然,ptr可以指向任何地方: ptr=%bah; /*令ptr指向bah而不是pooh*/ 这时,ptr的值是bah的地址。 要创建一个指针变量,首先需要声明其类型。假设您想把ptr声明为可以存放一个int数值的地址,就需要 使用下面介绍的新运算符。 9.7.1 间接运算符 假定ptr指向bah,如下所示: ptr = &bah; 这时就可以 使用间接(indirection)运算符*(也称作取值(dereferencing))来获取bah中存放的数值 (不要把这种一元运算符和表示乘法的二元运算符*相混淆)。 val = *ptr; /*得到ptr指向的值*/ 语句ptr=&bah;以及语句val=*ptr;放在一起等同于下面的语句: val = bah; 由此看出,使用地址运算符和间接运算符可以间接完成上述语句的功能,这也正是“间接运算符”名称的由来。 9.7.2 指针声明