對於C C 中指標的見解

2021-05-23 17:21:06 字數 1271 閱讀 4244

指標的原則:

指標的使用及其意義:

例子:

討論指標的四個問題:

以後見到指標就先將其的上述四個問題解決,那麼其他的便不是問題。

下面講述指標的一些具體用法:

1、指向指標的指標

解讀:ptr 儲存的是 p 的位址,p 儲存的是 a 的位址。

*ptr == p == &a。

**ptr == *p == a。

2、指標*p去掉*後,表示乙個儲存單元位址,*p表示此單元位址的值。

3、陣列與指標的關係

type a[20];

其中a表示兩個意思:

其一,它代表整個陣列,它的型別是type[20]。

其二,它是乙個指標,具有單獨的儲存位址,型別是type*,指向的是a[0]。

4、結構體與指標

呼叫結構體資料的方法:

pex->a;

pex->b;

pex->c;

或者*pl;          //呼叫a

*(pl+1);   //呼叫b

*(pl+2);   //呼叫c

如上兩種方案都可以呼叫結構體的資料,前提是結構體的資料時連續存放,且沒有填充資料(填充資料的原因是在某種編譯環境下有字對齊,雙字對齊,或者4字對齊)。如果有填充資料,那麼第二種方案就可能呼叫填充的位元組。

5、指標和引用 例:

//使用指標交換資料

指標做為函式的形參,只用當null有意義的時候才選擇,除此之外,都使用引用作為形參。

例://如下是得到結構體大小的函式

分析:第乙個函式使用的是傳值呼叫,使用此函式時要建立乙個example物件ex,呼叫結束時要銷毀這個物件。

第二個函式就只是引用一下物件ex,不建立新的物件,使用const也不改變物件。

當傳遞struct作為形參時,使用const和引用。

6、指標陣列和陣列指標

指標陣列:形如type *p[n],因為 的優先順序大於 * 所以 p 先是陣列然後變成指標陣列。使用在如下的情況:有關係的多組資料儲存在不連續的儲存單元中,需要乙個索引將他們關聯起來。於是指標陣列就形成了。

陣列指標:形如type (*p)[n],因為 () 和 的優先順序相同,從左到右執行,所以 p 是乙個指標然後指向乙個n個單元的陣列。使用在如下情況:乙個固定大小為n個單元的資料連續儲存,需要乙個索引,只要求其指向第乙個單元就可以引用其他的單元,就有了指向陣列的指標。

7、指標與函式例:

關於指標我就介紹到這裡了,算是拋磚引玉吧。

現在有個問題等待解答:

對於c c 中指標學習的兩個絕好的例子

指標學習不好關鍵是概念不清造成的,說的簡單點就是書沒有認真看,指標的學習猶如人在學習饒口令不多看多學多練是不行的,下面是兩個很經典的例子,很多書上都有,對於學習的重點在於理解 指標運算子的作用,假設定義了乙個指標變數x,x所表示的其實就是變數a本身,x表示的是變數a在記憶體中的位址,如果想明白可以輸...

C C 函式中指標的傳遞

主函式 qooks i s char malloc sizeof char 100 gets qooks i s qooks i qs char malloc sizeof char 100 qooks i num int malloc sizeof int processquerywords qo...

對於布局的見解

position absolute 元素的寬度變為content的寬度,這是與position relative 100 不同的地方,若要呈現為100 有兩個方法 1.直接設定 width 100 2.設定left 0px right 0px 布局參看 採用無寬度布局,雖然有時可能導致多個div的情...