指针的基本运算

由于指针所指向的内容是地址, 所以指针的运算实际上是地址的运算。指针有它自己特有的运算规律,与一般的整数是有区别的。
间接存取运算:
取地址运算符 取值运算符
二者可以看作一对互逆运算符。在指针定义的时候“表示”“指向”, 在使用指针运算的时候,“*”表示取该指针变量所指向变量的值。
例如:
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:是指针变量本身所占据的存储地址。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值