c 語言最精髓的東西指標
對於 c 語言的變數還是常量都是在虛擬記憶體當中的(vm),記憶體會有相對應的位址。生活中你家有位址也有家庭**。如果別人不知道你家的位址,別人要通知你幹什麼事情,就只能給你打**。但是**號碼是可以換的,**號碼一換別人就找不到你了,這時候別人還要想找到你,你就的提供你家的位址給他他才能找到你。(指標就應運而生)
函式址傳遞
在棧上開闢新的記憶體
鍊錶的使用
指標存的是位址,而二級指標裡面存的是位址的位址。
函式要改變傳入指標的指向
函式的值傳遞和址傳遞都是將傳入資料進行了拷貝生成副本,儲存的副本供函式內部使用。針對指標傳遞,那麼函式會先弄乙個指標(q)指向傳入指標(p)指向的內容,這個指標就是傳入指標的副本,也就是說從現在開始傳入指標(p)已經與我的函式無關了。因為我的函式內部沒有傳入指標(p)的位址,所以我沒辦法對傳入指標(p)有任何操作。我函式能做的僅僅是改變 p 指向的內容。假如說你在函式內部對 副本(q)進行了賦值是毫無意義的,因為你僅僅只是給副本(q)賦值,而對傳入指標(p)沒有任何影響。所以在函式內部要想給指標賦值,你就只能傳指標的位址,那麼就要用到二級指標了。
// 測試**
#include void func(int *q)
int main(void)
暫時就這麼多了
要想學好指標,必須對記憶體有著較深的理解,熟悉函式的傳參過程。了解相應的記憶體結構。
指標學習二 指標 位址
通過位址的呼叫來改變變數的值 includevoid f int p void g int k int main void f int p void g int k i 0063fe9c p 0063fe9c p 6 k 26定義乙個變數p,它位於2000單元,該單元存放了變數x的位址1000。此時...
C語言 二 指標
一 指標概述 1.簡介 2.初始化 1 先定義後初始化 int a 10 int p p a 2 定義並初始化 int a 10 int p a 備註 在資料型別後,變數名稱前的 是乙個說明符,用來說明該變數是乙個指標變數。如果前面沒有資料型別,如 p,這裡的 是乙個指標運算子,用來取出指標變數所指...
指標(一) 指標與二級指標
一 指標理解 二 二級指標 三 指標表示式 在指標表示式中,變數做左值與右值含義不同,通常變數做左值,變數名對應儲存空間 而變數做右值,代表資料內容。那麼,若有 char ch a char cp ch 則,下列 能做左值或右值嗎?ch 可以做右值 cp 可以做右值,也可以做左值 cp 可以做右值 ...