指针的基本运算

来源:互联网 发布:京东自营和淘宝旗舰店 编辑:程序博客网 时间:2024/05/01 22:57
由于指针所指向的内容是地址, 所以指针的运算实际上是地址的运算。指针有它自己特有的运算规律,与一般的整数是有区别的。
间接存取运算:
取地址运算符 取值运算符
二者可以看作一对互逆运算符。在指针定义的时候“表示”“指向”, 在使用指针运算的时候,“*”表示取该指针变量所指向变量的值。
例如:
int n =2, * p;
p = &n;
&(*p) 等效于p, (因为p = &n,则*p = n, 则&(*p) = )其结果为(*p)的地址,即n的地址;
*(&n)等于n, 即地址(&n)所存放的值, 其结果就是2。
在进行指针运算时,要注意p = &n 与 *p = n 这两个表达式的区别:
p = &n :是把变量n的地址赋给指针变量p,从而使p指向n,这时*p和n取值相同。
*p  = n :是将变量n的值赋给p当前所指向的变量。(因p指向变量n,实际上就是将变量n的值赋给其自身,如*p=3 是将3赋给n)
所以应严格区分p、 *p、和&p三者的区别:
p:是指针变量,其内容是地址量。
*p:是指针变量所指向的变量,其内容是变量的值。
&p:是指针变量本身所占据的存储地址。
0 0
原创粉丝点击