指針是C語言中的一個重要概念,也是C語言中的一個顯著特點的體現。利用指針可以十分方便地使用數組和字符串,使程序更加簡潔,從而提高程序的效率。使用指針可以靈活地實現函數調用時的數據傳遞。指針支持動態分配內存。所以,要掌握好C語言,學好指針是十分必要的。本文歸納了指針的基本用法,也就是如何用指針表示變量、數組元素、字符串及結構體成員。
1.指針的定義
指針定義格式如下:
類型關鍵字 *指針變量名
2.用指針表示變量
例1:
int*p;
int a;
p=a;
“*”是乘號,又可以定義指針,還可以取指針所指向的變量的內容。
#include
void main()
{
int *p,a;
int count=19;
p=count;
a=*p;
printf(\"%d\\",a);
printf(\"%d\\",*p);
}
“*”放在可執行語句中的指針之前,表示取指針所指向的變量的內容。
“*”放在指針定義中時,稱指針定義符。
該程序運行結果如下:
19
19
3.用指針表示數組元素
例2:
int*p,*q;
int a[10];
p=a;
q=a[2];
#include
void main()
{
int a[5]={1,2,3,4,5};
int *p=a;
for(p=a;p { printf(\"%d\",*p); } printf(“\”) ; } 該程序運行結果如下: 12345 該例中輸出的每個數組元素都是一個整型數。 #include void main() { char a[]=\"ABCDE\"; char *p=a; for(p=a;p { printf(\"%c\",*p); } printf(\"\\") ; } 該程序運行結果如下: ABCDE 該例中輸出的每個數組元素都是一個字符。 4.用指針表示字符串 #include void main() { char *p,s[]=\"abcdefgh\"; p=s; printf(\"%s\\",p); p=s+1; printf(\"%s\\",p); printf(\"%c\\",*p); } 該程序運行結果如下: abcdefgh bcdefgh b 使用格式控制符%s,輸出字符指針(即p)來輸出字符串。 使用格式控制符%c,輸出字符指針的間接(即*p)引用來輸出字符。 同樣的例子如下: #include void main() { char *p,s[]=\"abcdefgh\"; p=s; while(*p!='\\0') { printf(\"%c\",*p); p++; } printf(\"\\"); p=s; printf(\"%s\\",p); p=s+1; printf(\"%s\\",p); } 該程序運行結果如下: abcdefgh abcdefgh bcdefgh #include void main() { char a[]=”ABCDE”; char *p=NULL; for(p=a;p { printf(“%s\”,p); } } 該程序運行結果如下: ABCDE BCDE CDE DE E #include void main() { char a[]=”ABCDE”; char *p=NULL;