C語言關於指標P P P三者的區別

2021-10-04 11:40:33 字數 938 閱讀 4906

1、指標和指標變數是兩個不同的概念,但要注意的是,通常我們敘述時會把指標變數簡稱為指標。

2、指標就是位址,位址就是指標,它是乙個形無符號整型,乙個整數,它的大小取決於系統是16 32 還是64位的 16/8=2byte 32/8=4byte 64/8=8byte.

3、指標變數其實是乙個變數,只不過其存放的內容為位址,如 int* p,這個p是指標型別,它的值存的是位址。

假設我們定義了乙個指標變數 int *p;

p和&p區別在於指標p同時也是個變數,既然是變數,編譯器肯定要為其分配記憶體位址,無論是普通的變數還是指標變數在記憶體中都有乙個位址 ,就像程式中定義了乙個int型的變數i,編譯器要為其分配一塊記憶體空間一 樣。而&p就表示編譯器為變數p分配的記憶體位址,而因為p是乙個指標變數,這種特殊的身份注定了它要指向另外乙個記憶體位址,程式設計師按照程式的需要讓它指向乙個記憶體位址,這個它指向的記憶體位址就用p表示。而且,p指向的位址中的內容就用*p表示。

#include int main()

首先我們需要知道記憶體位址(簡稱位址)是乙個十六進製制的數字,比如說0x403024這就可以表示乙個位址,拿這個東西可以表示任意乙個字元。

指標並不是真的可以儲存字串,而是儲存了字串首字母的位址,其實每個字串都是以'/0'為結束符,當用%s輸出時,在輸出前乙個字元的同時指標會自動跳到下個字元的位址處,直到遇到'/0'停止,所以%s可以輸出乙個字串

如:char *str = "hello world"

指標只能儲存位址,上面「hello world」儲存在文字常量區,str只是儲存這個字串的位址

不過可以用malloc函式開一塊空間出來,然後把位址給指標,也算是儲存字串

比如char *str = (char*)malloc(str_size);

C 關於指標 const 引用三者的體會

關於三者的應用可以用一下幾句話來總結 一 對變數的更改許可權只會變低 二 符號離誰近就修飾誰 三 const不是物件 首先看第一句,對變數的更改許可權只會更低 舉例說明 int x 0 對該變數可讀可寫 正確 const int y x 對該變數可讀不可寫 正確 int const a 0 對該變數...

ARM,DSP,FPGA三者的區別

arm具有比較強的事物管理功能,可以用來跑介面以及應用程式等,其優勢主要體現在控制方面 而dsp只要是用來計算的,比如進行加密解密 調製解調等,優勢是欠打的資料處理能力和較高的執行速度 fpga可以用vhdl或veriloghdl來程式設計,靈活性強,由於能夠進行程式設計 除錯 再程式設計和重複操作...

vector,list,deque三者的區別

stl提供了三個最基本的容器 vector,list,deque。vector和built in陣列類似,它擁有一段連續的記憶體空間,並且起始位址不變,因此它能非常好的支援隨即訪問,即操作符,但由於它的記憶體空間是連續的,所以在中間進行插入和刪除會造成記憶體塊的拷貝,另外,當該陣列後的記憶體空間不夠...