1、指標指向變數:
下面有這樣乙個**塊:
int main()
void test(int x,int y)
最後輸出的結果還是a=10,b=15。因為在函式呼叫時,實參和形參之間只是值傳遞。但我們使用指標結果就不一樣了,如:
int main()
void test(int * x,int *y)
輸出結果a=15,b=10。變數a和b的值發生了交換。這是因為我們利用指標訪問變數的儲存單元,間接修改變數的值。
2、指標指向陣列:
定義乙個陣列並初始化,int array[5]=,定義乙個指標變數並把陣列的位址賦給它,int
*p=array,注意陣列名就是陣列的位址,而且陣列的位址就是首元素的位址。因此我們的指標變數就指向了陣列的首元素,*p=2。如果把(p+1),那麼指標變數就指向了陣列的下乙個元素5,因此我們可以利用指標來遍歷陣列的各個元素:
int main()
;int p =array;for(int
i=0;i<5;i++)return 0;}
3、指標指向字串:
我們都知道用陣列儲存字串,如char name[20]=「jack」,上面已經簡單講述了指標指向陣列,所以我們可以這樣做,char
*name=「jack」,指標變數指向字串的首個字元並可以依次訪問字串的各個字元。
4,指標指向函式:
我們需要知道怎樣表示乙個指標指向函式,說白了就是語法要正確,下面我也取乙個**塊來說明一下:
int sum(int x,int y)
int main()
不難發現上面**塊裡語句(*p)(a,b)可以用p(a,b)來代替,因為p和sum就是一樣的,只是用前者可能更容易理解一點。而我們要知道怎樣定義乙個指標指向函式,int
(*p)(int,int)這是固定寫法,前面的int是指標將來指向的函式的返回值的型別,如果沒有函式返回值,那就是void,後面括號裡的兩個int
當然就是指標將指向的函式的形參。指標指向函式用起來確實有點抽象,要想熟練運用的話就多去做一些這方面的練習吧!
5,指標指向結構體:
我們首先首先定義乙個結構型別,
struct student
;再根據型別定義結構體變數 struct student stu=;定義乙個指標指向結構體型別,struct student
*p;把結構體變數stu的位址賦給指標變數p,p=&stu;我們可以有3種方式來訪問結構體中的屬性ages:
stu.ages=15;(*p).ages=15;p->ages=15;不過第三種方式在c語言中只能用來指向結構體。
相關c語言-指標學習資料
指標指標換裝你還認識嗎
C語言中指標的簡單用法
指標的應用與理解 p 指標佔位符 x 16進製制佔位符 c int num1 8 int num2 10 int ptr num1 num1 int ptr num2 num2 p 指標佔位符 x 16進製制佔位符 printf ptr num1指向的值為 d n ptr num1 printf p...
C語言中指標大全
1.使用二維字串儲存字串的時候會出現儲存浪費的情況,使用指標陣列儲存則不會 char s for i 0 ifor i 0 i 3 i 2.指標陣列作為函式引數傳遞多個字串給另乙個函式。指標陣列是乙個陣列,只是裡面存放了指標 void str sort char s,int n n代表指標陣列的長度...
C語言中指標的操作
c語言中指標操作主要有以下幾種 指標減去乙個整數 模擬上面的4。指標自減 模擬上面的5.求差值 通常對指向乙個陣列兩個不同元素的指標求差值,代表兩個元素位置的差值。示例 include int main void int ptr1,ptr2,ptr3 ptr1 urn ptr2 urn 2 prin...