*p和*&p 有什么区别?

#include<stdio.h>
#include<iostream>
using namespace std;
int main(void) 
{
    int a=10;
    int *p=&a;
    int *&q = p;
    cout << "p的按地址求值"<<*&p<< endl;
    cout << "p的直接求值" << *p << endl;
    cout << "p的地址的值的值" << **&p << endl;
    system("pause");
    return 0;
}

p 表示的就是一个指针,而&p表示变量p的地址对于上面的程序来说&p!=&a,上面的程序指针p指向a的地址,此时p的值为a的地址**p的值相当于指向a的地址引用*(可理解为a存储的值),而当*&p时相当与对a进行了取地址此时*&p = &a;
&是取地址符号,是取指针里面的值,&p是先去指针p的地址值之后再按地址值取值。*p是直接去指针里的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值