指標的原則:
指標的使用及其意義:
例子:
討論指標的四個問題:
以後見到指標就先將其的上述四個問題解決,那麼其他的便不是問題。
下面講述指標的一些具體用法:
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的情...