2.指標運算子
&是取位址的運算子,*是表示指標運算子
3.指標作函式引數
函式的引數不僅可以是整型、實型、字元型等資料,還可以是指標型別。作用是將變數的位址傳送到另乙個函式中。
例如:int a, *pa ;
pa = &a ; //把a的位址給pa,都是整型
把乙個指標變數的值賦予相同型別的另乙個指標變數;
int a, *pa = &a, *pb ; pb = pa; // 把a的位址給pb;
5.指標與null的比較
空指標是對指標變數賦予0值得到的:
如: #define null 0
int *p=null; 空指標
p為指標變數,p=null表示空指標,不指向任何變數。
p !=null表示p不是空指標;
指標變數未賦值時,可以是任意值,是不能使用的,會造成意外錯誤。而指標變數給null值後,則是可以使用的,只是不指向具體的變數。
6.指標變數的使用步驟:
(1). 定義指標變數;
(2).給指標變數賦位址;
(3).正常使用指標進行運算;
7.陣列元素和指標
陣列的指標是指數組的起始位址,陣列元素的指標是陣列元素的位址。
如:int a[10]; /定義a為包含10個整型資料的陣列/
int *p; /*定義p為指向整型變數的指標*/
p=&a[0]; 把a[0]元素的位址賦給指標變數p。也就是說,p指向a陣列的第0號元素。
如果指標變數p已指向陣列中的乙個元素,則p+1指向同一陣列中的下乙個元素。
指向陣列的指標變數也可以帶下標。p[i]和*(p+i)等價。
8.引用乙個陣列:
下標法:用a[i]來表示;
指標法:用*(a+i),*(p+i)表示。
9.在c語言中,可以用兩種方法訪問乙個字串。
(1)用字元陣列存放乙個字串,然後輸出該字串。
int main()
char string=」i love china!」;
printf("%s\n",string);
return 0;
}
(2)用字串指標指向乙個字串。
main()
char *string=;
printf("%s\n",string);
10.字元陣列和字串的區別
(1)字串指標變數本身是乙個變數,用於存放字串的首位址。而字串本身是存放在以該首位址為首的一塊連續的記憶體空間中並以『\0』作為串的結束。
字元陣列是由於若干個陣列元素組成的,它可用來存放整個字串。
(2)對字串指標方式 char *ps=「c language」;
可以寫為:
char *ps; ps=「c language」;
而對陣列方式: char st=;
不能寫為:char st[20]; st=;
而只能對字元陣列的各元素逐個賦值。
(3)當乙個指標變數在未取得確定位址前使用是危險的,容易引起錯誤。但是對指標變數直接賦值是可以的。因為c系統對指標變數賦值時要給以確定的位址。
因此, char *ps=「c langage」;
或者 char *ps; ps=「c language」; 都是合法的。
陣列與指標2
1626 5 劉小銘總結 2016年10月22日 連續22天總結 內容 a 一句話概括今日目標完成情況 字元陣列與指標 指標陣列 90 結構體與陣列 80 b 具體內容 對於昨天所學的,還是要多複習複習,暫時是記住了,但容易混淆。還有就是指標陣列,這個呢,我不明白用來做什麼的,沒有看過與這個相關的程...
陣列與指標 2
之前寫過很多關於c 中指標使用的部落格了,其中就包含一篇陣列指標,指標陣列的部落格,所以這裡部落格名字就叫做陣列與指標 2 了。指標真的是一件讓c 又愛又恨的東西,使用的時候,一定要知道指標指向了誰,這個誰又是什麼身份。有了指標,c 可以很強大,直接操作很底層的東西,協議,記憶體以及外設,甚至可以作...
指標與陣列,指標陣列 陣列指標
int a 10 print n a p,a p a,a print n a 1 p,a 1 p a 1,a 1 a做乙個指標,步長為4,指向乙個元素,a做乙個指標,步長為40,指向乙個維陣列 int b 3 4 print n b p,b p,b p b,b,b print n b 1 p,b 1...