C/C++中 ' & ' 和 ' * ' 的區別和用法

當申明變量int * p 的時,表示p是一個儲存地址的變量;
比如int p=0,表示p指向地址爲00000000的地址單元。
當申明指針p之後,再用
p表示p指向的儲存空間的內容;&表示取變量的地址;

#include<iostream>
using namespace std;
int main(){
    int a=123;
    //&a表示a在內存中的地址,也就是123在內存中的地址
    cout<<"a: "<<a<<endl<<"a's address:"<<&a<<endl;
    //此時p是一個指針,指向a所在的位置
    int *p=&a;
    cout<<"p: "<<p<<endl;
    //聲明p之後,在p之前添加*表示p指向內存的值
    cout<<"p's value: "<<*p<<endl;
    //同時p也是 一個變量,在內存中也有一個地址儲存它,但其地址不是a的地址
    cout<<"p's address: "<<&p<<endl;
    //試試*&組合使用是什麼效果
    cout<<"*&p: "<<*&p<<endl;
    //&p是一個內存地址,*&p表示&p指向地址內存空間的值,在這裏表示a的地址
    cout<<"**&p: "<<**&p<<endl;
    //剛纔我們已經知道*&p是a的地址,那麼**&p就表示a的值
return 0;}

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章