c 中 p a和p a的區別

2021-08-28 06:39:50 字數 803 閱讀 7582

大學初學指標的時候,時常懵逼,有時候覺得自己已經掌握了,但是一看複雜的程式和原始碼裡的指標用法,就又蒙了,以至於談指標色變。至於二級指標,陣列指標、指標陣列、函式指標什麼的更是被嚇懵。現在來逐個擊破他們,為我們的程式設計道路掃清阻礙。

首先需要明白一點的是,指標是個變數,它和int型別、float型別等的變數一樣,也儲存在記憶體中,佔據一定的位元組。只是int變數儲存的是整形數字,而指標變數儲存的是位址,掌握了這點,攻破指標就指日可待了。

假設存在乙個int型別的變數a,乙個指向int型別的指標p。

現在來*p=a和p=&a的區別。先分析*p=a,這是乙個賦值操作。這裡可以把*p當成另外乙個int b變數。b=a,是不是就很熟悉了。所以*p=a表示把a的值賦值給p所指向(儲存)的記憶體位址。

再分析p=&a。這裡就很好理解了,把a的位址,賦值給p。即p指向(儲存)了a的位址。

結合實際例子分析:

執行環境:vs2013,語言:c++。

#include using namespace std;

int main()

輸出:

二者區別:

*pa=a;     表示把a的值賦值給pa所指的記憶體位址,pa本身沒變。

pb=&a;    表示指標pb指向變數a的位址,pb本身變了。

p a與 p a有什麼區別

首先來說一下 和 為了便於理解你可以認為,這裡 是取內容,是取位址。我不討論它們的區別,因為 p a這個形式一般是錯的,常用的是p a。下面比較 p a和p a。看圖,圖很詳細。顯然它們是等價的。然後比較 p a和p a 則這兩種都是對指標變數的賦值,賦值有兩種形式 先定義後賦值 int a 3,p...

p a 與 int p a 的區別

int a int p a 將整形變數a的位址放入指標p中。int a 1 int p a 將陣列a的首位址放入指標p中。int p之後是位址變數。int p int a 1 include int main int p int a 1 a表示整個陣列的位址 printf d d a 1 p 1 輸...

Extjs中ViewPort動態更換Panel

我們在使用extjs進行開發單頁面應用時,我們構建了乙個viewport有時候可能希望對viewport中的items進行動態替換,網上也有很多的資料但是都只說了個大概並沒有詳細說明,這裡我將對遇到這種需求時如何處理進行詳細介紹。環境extjs 4.2 首先我們來看viewport 選單model ...