理解指针首先要记住一点,通常情况下指针就是地址,永远不要忘记这一点。当然也有例外,所以这里说通常情况下,但是那个例外我们一般很难接触到,所以这里就不再赘述了。
声明
首先,我们先看一下指针的声明。指针声明和声明其他变量一样,唯一不同的一点就是要在变量前加 *。
int *p;
初始化
可以用地址初始化。
int i;
int *p;
p = &i;
可以一边声明一边初始化,但只能用地址去初始化,而且必须首先声明i。
int i, *p = &i;
两个运算符
指针中最重要的两个运算符是*和&符号。对于前者,我们需要注意int *p = &a和*p = a中的*是完全不同的,第一个*用来声明一个指针,后一个用来间接寻址,访问存储在对象中的内容。后者是取地址符号,可以找到变量的地址,并赋给一个指针变量。
指针赋值
C语言允许使用赋值运算符进行指针的复制,前提是两个指针具有相同的类型。
正如前面所说,我们可以通过取地址符号为一个指针变量赋值:
int i, j,
*p,
*q;
p = &i;
当然,也可以指针与指针之间赋值:
q =
p;
另外,通过间接寻址符号*我们可以为指针指向的对象赋值:
*p =
1; //此时i的值为1
也可以将一个指针指向的对象的值赋给另一个指针指向的对象:
*q =
*p;
参考资料
C语言程序设计现代方法, K.N.King, 人民邮电出版社
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
转载请注明原文地址: https://ju.6miu.com/read-36849.html