c++中*p=a和p=&a的区别

#include <iostream>

using namespace std;

int main()
{
    int a = 10;
    int *PA = new int;
    *PA = a;
    cout << "*PA is:" << *PA << endl;    //输出10

    int *PB = NULL;
    PB = &a;
    //*PB = a;     //这样子赋值会出现错误
    cout << "*PB is:" << *PB << endl;     //输出10

    delete PA;     //记得用delete释放指针占用的内存

    PA=NULL;     //然后使指针指向空

    return 0;
}

二者区别:

*PA=a;     表示把a的值赋值给PA所指的堆内存地址,PA本身没变。

PB=&a;    表示指针PB指向变量a的地址,PB本身变了。

猜你喜欢

转载自blog.csdn.net/c_shell_python/article/details/82776406