C語言複習 指標

2021-09-29 02:10:34 字數 1355 閱讀 4080

這篇部落格是對於我個人的知識的複習,當然如果有某位大佬能夠指出這裡面有哪些概念含糊不清或者難懂,麻煩指出來感激不盡。

指標恐怕c裡最常見,最不起眼,但也比較難以掌握的知識。

選自《c和指標》

當我們宣告乙個陣列時,它同時也分配了一些記憶體空間,用於容納陣列元素,但是,當我們宣告了乙個指標時,它只分配了用於容納指標本身的空間。

可以從幾大方面分

陣列相當於乙個集合,裡面儲存了多個相同型別的資料。

指標相當於乙個變數,裡面放了指向其他物件的記憶體位址。

陣列在相鄰的記憶體中儲存資料,是一種資料結構,順序表。

指標儲存位置和普通變數一樣,編譯器存在**中,執行時存在記憶體中。

指標在64位下是8個位元組大小,在32位是4個位元組大小,陣列的大小則與存的資料有關係,可以用sizeof來測試。

聽起來挺高大上的,不過實際上是還是蠻基礎的概念。
指標函式:返回值型別位指標的函式。

函式指標:指向函式的指標。

上面聽起來是廢話,用例子來表示

int *fun(int x,int y);
上面的就是乙個指標函式的宣告。

函式指標,其本質是乙個指標變數,該指標指向這個函式。總結來說,函式指標就是指向函式的指標。

宣告格式:型別說明符 (*函式名) (引數)

如下:

int (*fun)(int x,int y);
fun = &function;

fun = function;

取位址運算子&不是必需的,因為乙個函式識別符號就表示了它的位址,如果是函式呼叫,還必須包含乙個圓括號括起來的參數列。

呼叫函式指標的方式也有兩種:

x = (*fun)();

x = fun();

兩種方式均可,其中第二種看上去和普通的函式呼叫沒啥區別,如果可以的話,建議使用第一種,因為可以清楚的指明這是通過指標的方式來呼叫函式。

eg:

#includefloat add(int x, char y)

int main()

實際上還有類似指標陣列和陣列指標的概念,考慮到和上面的概念區別不大,所以這裡就不做說明了。

C語言複習 指標

程式設計練習 1.用指標實現報數問題 用指標的方法解決3人報數問題 include int main i k m 0 i是陣列計數,k是迴圈3次計數,m是退出的人計數 while m n 1 n是總人數,退出的人數要比總人數少乙個人結束迴圈 if k 3 i if i n 如果i到了成員最後,返回最...

c語言複習 指標

注 本文是對蘇小紅版c語言教材第9章的筆記 間接定址運算子 解引用運算子 e.g.int pa a 用於指標變數的定義 int a 0 printf a is d,a is p,pa is p,pa is d a,a,pa,pa 用於讀取指標變數儲存的位址對應的變數的值輸出結果 a與pa相同,a與p...

C語言複習 指標

1.什麼是指標 我們把位址形象化的稱為 指標 意思是通過他可以找到以他為位址的記憶體單元。指標是乙個特殊的變數,它裡面儲存的數值被解釋成為記憶體裡的乙個位址。要搞清乙個指標需要搞清指標的四方面的內容 指標的型別 指標所指向的型別 指標的值或者叫指標所指向的記憶體區 指標本身所佔據的記憶體區。讓我們分...