*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是直接去指针里的值。
本文来自博客园,作者:江北一滴水,转载请注明原文链接:https://www.cnblogs.com/zhangzongjun/p/15520473.html