教你認識指標(一)

2021-06-20 03:56:56 字數 1554 閱讀 9071

#include using namespace std;

#include #include //間接賦值

//通過形參改變實參

int demo02(int *p/*out*/)

int demo01()

//二級指標的應用

int demo04(char **p/*out*/)//通過二級指標去改變一級指標

int demo03()

int main ()

; 2、**指標用在,malloc不知道所要打包的資料有多大的時候,或者函式二返回的資料給函式一使用的時候。為了防止在stack上定義的被清空,無法返回出去的時候 ,其他的時候禁止使用malloc。

3、指標的資料型別跟指標沒關係,只是告訴作業系統如何去解釋指標所指向的記憶體空間。

4、 char***p3=null;

char**p2=null;

p3=&p2;//

*p3=0x1100;//這時候p2這個指標變數改變了。

5、看指標是做輸入還是輸出?什麼是輸入什麼是輸出呢?

先說什麼是輸入,一般情況下在主調函式裡面分配記憶體,被呼叫函式使用,一般稱為輸入。

如果在被呼叫函式裡面分配記憶體,供主呼叫函式使用,則成為輸出。

6、作業如上:各級指標的做函式引數的推演過程以及典型錯誤

*/ system("pause");

return 0;}/*

1、除了做底層應用,其他的慎用malloc,因為不free會發生記憶體洩露,而且要是緊跟break或者return 就free不了了

2、int*p=null只要申請乙個四位元組的記憶體空間,

3、程式執行記憶體分析的能力。訓練介面的封裝和設計能力

4、函式內變數的記憶體執行分布

5、資料型別是解釋記憶體空間的

6、指標也是一種資料型別,指標的資料型別是指所指記憶體空間的資料型別。

int func(char);//按8位元組去處理記憶體空間的資料

int func(char *a);//按字串去處理

7、指標變數和他所指向的記憶體塊是不同的概念。

8、野指標?*p=null只是定義了指標變數,沒有分配空間

9、間接賦值是指標存在的最大意義。

10、改變變數有兩種方法直接和間接賦值。

int demo04_gaozhijiao(char **p/*out*/)//間接,通過二級指標去改變一級指標

int demo02_gaozhijiao(int *p/*out*/)

11、間接賦值存在的意義是什麼?

1、*p++=*s++//等號左邊表示改變位址,就是指向的內容,等號右邊表示取裡面的內容。

2\指標做函式引數的時候,可以作為輸入,也可以作為輸出,是輸入還是輸出,主要是看在主調函式中分配記憶體(輸入)還是在被調函式中分配記憶體(輸出)。

12、給指標p賦值p=p+1只會改變指標變數的值,不會改變所指向的內容,想改變內容用間接賦值!!int *p=&a;

13、給×p賦值只會改變所指向的內容的值,不會改變指標變數的值,

*p=200;不會改變p的值。

*/

認識C語言指標(一)

說到指標,就會出現一些複雜型別,如果對這些複雜型別不太了解,在用到指標有時就會比較懵。乙個型別裡面會有很多運算子,其優先順序和運算優先順序一樣,只需要遵循乙個原則 從變數名處起,根據運算子優先順序結合,一步一步分析 先來看看簡單的型別 int p 這是乙個普通的整型變數 int p 先從p處開始,先...

指標系列 認識指標

指標在c 學習中一直是難點和重點,由於在專案中指標應用比較靈活,所以指標所引發的問題比較多,最近針對指標進行重點學習。有人說,掌握指標,也就掌握c語言的精髓。c 中當然也有指標,同時還包括繼承 多型等等。沒有記憶體,就沒有指標,在理解指標的開始階段,先重點講解記憶體五區。如上圖所示 一般下理解記憶體...

Delphi指標認識

大家都認為,c語言之所以強大,以及其自由性,很大部分體現在其靈活的指標運用上。因此,說指標是c語言的靈魂,一點都不為過。同時,這種說法也讓很多人 產生誤解,似乎只有c語言的指標才能算指標。basic不支援指標,在此不論。其實,pascal語言本身也是支援指標的。從最初的pascal發展至今的obje...