24 指標的本質

2021-09-24 19:01:14 字數 1141 閱讀 8916

變數代表一段儲存空間的別名,但並不是只能通過變數才能訪問一段記憶體了,指標也可以

1、*號的意義

p = &i;

*p = i;

為什麼指標的大小占用為4個位元組?

因為如果系統是32位,位址定址範圍為4個位元組,所有的32位位址值都可以用4個位元組表示,所以32位系統指標的大小都為4個位元組

`2、傳值呼叫與傳址呼叫

我記得我當初剛學這裡的時候被swap函式折磨了很久,現在想來,以前是真的菜,我覺得主要還是要搞懂作用域的問題,我們可以把函式當成乙個副本,無論你傳值呼叫怎麼去修改值,對我值本身根本沒有影響。就像你在桌面上複製乙個文件生成乙個副本。你在副本裡面怎麼修改文件,對我原文件是一點影響都沒有。

但是傳址呼叫不一樣,你用指標交換的時候,真實值就已經改變了。

#include //void swap(int a, int b)           這段**是錯誤的。

3、常量指標

const int* p;					//p可變,p指向的內容不可變
int const* p;					//p可變,p指向的內容不可變
int* const p;					//p不可變,p指向的內容可變
const int* const p				//p和p指向的內容都不可變
口訣:左數右指

當 const 出現在 * 號左邊時指標指向的資料為常量,

當 const 出現在 * 號右邊時指標本身為常量。

26 指標的本質分析

程式中的變數是一段儲存空間的別名,本質上是一段儲存空間。問題 是不是只能通過變數使用儲存空間?include int main 總結 可以通過指標來使用儲存空間。在指標宣告時,號表示所宣告的變數為指標 在指標使用時,號表示取指標所指向的記憶體空間中的值。指標的特殊點 1.指標的本質是變數,但變數的值...

26 指標的本質分析

注 部落格中內容主要來自 狄泰軟體學院 部落格僅當私人筆記使用。測試環境 ubuntu 10.10 gcc版本 4.4.5 一 變數回顧 程式中的變數只是一段儲存空間的別名,那麼是不是必須通過這個別名才能使用這段儲存空間?二 思考 下面的程式輸出什麼?為什麼?int i 5 int p i prin...

NO15 指標的本質分析

變數 程式中的變數只是一段儲存空間的別名,那麼是不是必須通過這個別名才能使用這段變數?可以 號的意義 在指標宣告時,號表示所宣告的變數為指標 在使用時,號表示取指標所指向的記憶體空間中的值 指標是變數,因此可以宣告指標引數,當乙個函式體內部需要改變實參的值,則需要使用指標引數,函式呼叫時實參值將賦值...