若觸過組合語言,那麼理解學習c語言中指標就很簡單了。指標,在彙編裡面的表現形式,無非就是定址,直接定址和間接定址。
先來學習下, c語言中的4大類資料型別:
基本型別:int,long,float,char
構造型別:陣列,結構體-struct,聯合體-union, 列舉型別-enum
指標型別:int*, long*, float*, char* 等等
空型別 :void
如上,指標是一種資料型別,如同整數型有int,long,float,short ,
指標型下面也有int*,long*,float*, char*, struct* 等等。
舉例說明:定義乙個int型指標。
int a=12345; //定義了乙個整型變數a,同時給a賦值12345
int* pa=&a; //定義了乙個指標名叫pa,它指向的是乙個整數a。也可叫pa是個整型的指標。
//對int 後面加個*,就表示這個變數pa,不是int整型了,而是整型指標了。
&a表示取到變數a的位址, 這個位址一般是乙個32位的資料,位址內放的值是12345。
int* pa=&a; 表示把變數a的位址當做資料,賦值給變數pa。
這裡需要理解變數位址和位址存的資料(變數的值),這兩個概念。
位址就好比你家的位址,買東西要填寫的收穫位址;
位址內的資料就好比你家的房子;
仔細看下面的**:
我這裡顯示變數a的位址是0x0019 fedc ,位址值應該是4位元組的,前面兩00可以省略不顯示的。
從上面的例子可以看到,指標變數pa位址內的存放的是 整型變數a的位址,也可以說變數pa的值是 變數a的位址。
而常說的-指標變數pa指向的值,在這裡就是變數a的值=12345; *pa 就是取值的意思,程式執行*pa的操作是,選取到pa記憶體的值,然後把這個值當做"位址",在去取這個「位址」內存放的值。
這時,老闆說,客戶公司的位址我寫在我的筆記本上,但筆記本放在了我家裡。 我這裡給你個紙條,上面是我家的位址,你先到我家,拿到筆記本,看上面客戶的公司位址,在去客戶公司,把材料拿回來。
下面例子:指標的指標 int** p
int a = 12345; //定義個整數int* pa=&a; //定義乙個指標(整數型的),也叫乙個指向整數的指標,也叫整數指標。
int** ppa; //乙個指標,它指向的是"另外乙個指標",另外乙個指標指向的是乙個整數。
// 解釋:* 表示ppa 是個指標, int* 乙個值想整數的指標
ppa = &pa; //ppa的值是 整型指標變數pa的位址。
printf("變數a的位址=0x%x \n",&a);
printf("變數a的值=%d \n",a);
printf("變數pa的位址=0x%x \n",&pa);
printf("變數pa位址記憶體的是=0x%x \n",pa);
printf("變數pa是個整型指標,它指向的值=%d \n", *pa);
printf("指標的指標ppa位址記憶體的值是=0x%x \n", ppa); //變數pa的位址
printf("*ppa=0x%x \n", *ppa); //變數a的位址
printf("指標的指標ppa最終指向的值是=%d \n", **ppa); //變數a的值
//只要高興,還可以跟多層的指標,暫時覺得沒毛用int*** pppa;
int**** ppppa;
int aa[10] = ; //定義了乙個陣列,裡面放了10個整數,aa也可叫整型陣列
int* bb[10]; //宣告了乙個陣列叫bb,長度10.裡面放的資料是整數指標。
bb[0] = pa; //bb[0] 是陣列bb的第1個資料,它是整型指標。
//可以理解為 int* bb[0], bb[0] 是個變數名, 對比 int* pa.
//所以可以有 bb[0]=pa;
printf("變數a的位址=0x%x \n",&a);
C語言學習筆記 指標
c語言要玩的好,指標是核心,但是指標在學習的時候看教程往往感覺一看就明白,但是實際用的時候一用就錯,而且還不知道錯在哪。為了更加深刻的了解指標,將學習過程記錄下來,依次加深對指標的理解。先看看一段測試 void fun void int main void 定義乙個變數a,值為100,然後定義乙個一...
C語言學習筆記 指標
get新知識 1 指向二維陣列的指標,如指向int a 3 4 的指標int p 4 p指的是第0行第乙個位址 注意是位址 p 1 指的是第1行第乙個位址,以此類推 p i j 表示第i行第j列的元素。二維陣列本質也是一維陣列。每一行相當於乙個元素。2 指向函式的指標 作用 可以作為另乙個函式的引數...
C語言學習 指標 筆記
1 c程式設計中使用指標的好處 2 記憶體中每個位元組都有自己唯一的編號 記憶體位址 3 儲存單元 記憶體位址及指標 4 指標變數 4.1 變數的指標和指向變數的指標變數 其中,用 表示指標變數所指向的物件。如 指標變數pa指向變數a。則 pa就表示pa的物件,即變數a。此時 pa與a為同乙個變數 ...