999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C語言中指針的基本用法

2011-12-31 00:00:00劉沖張瑋煒
中國科技財富 2011年14期

指針是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;

for(p=a;p

{

printf(“%c”,*p);

}

}

該程序運行結果如下:

ABCDE

5.指針數組與指向數組的指針

指針數組就是數組元素為指針的數組。常用的指針數蘇是一維一級指針數組,即數組是一維的,元素是一級指針。

指針數組定義的格式如下:

類型說明 *數組名[大小] 例如:int*ap[5];ap是一維一級指針,該數組有5個元素,每個元素是一個一級指針。

在實際應用中,常常使用一維一級指針數組來存放若干個字符串,這樣操作起來比較方便。

例:編程實現輸入星期幾的數字后,輸出該數字對應的英文全名。

#include

char *name[]={\"\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\",\"Sunday\"};

main()

{

int week;

while(1)

{

printf(\"Enter week No.:\");

scanf(\"%d\",week);

if(week<1||week>7) break;

printf(\"Week No. %d is %s\\",week,name[week]);

}

}

該程序中指針數組name經初始化后有8個元素,name[0]不用,name[1]指向Monday,name[2]指向Tuesday …… 。

指向數組的指針,定義格式為:

int(*p)[4] 定義了一個指針,該指針指向二維數組,此二維數組每行有4個元素。

#include

int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

main()

{

int (*p)[4];

p=a+2;

printf(\"%3d %3d %3d\\",p[0][0],p[1][1],p[-1][2]);

}

該程序運行結果如下:

907

6.用指針表示結構體成員

#include

void main()

{

structperson{charname[9];intage;};

structpersonclass[10] = { \"John\",17,

\"Paul\",19,

\"Mary\",18,

\"Adam\",16,},*p;

p=class+2;

printf(\"%c\\",p->name[0]);

}

該程序運行結果如下:

M

#include

struct tt

{int x; struct tt*y;}*p;

struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a};

main()

{int i;

p=a;

for(i=1;i<=2;i++)

{ printf(“%d ”,p->x);

p=p->y;

}

}

該程序運行結果如下:

20 15

首先,指針p指向數組a的首地址,a[0]。在循環中,i=1時,因此時p指向a[0],因此p->x的值是20。a[0]的第二個成員表示為p->y,此值為a+1,即a[1]的地址,也就是把這個值更新了指針p,i=2時,p->x即為a[1]的成員x的值15。

本文主要歸納了C語言中指針的基本用法,熟練地掌握指針的基本用法,為指針在程序中的應用打下一個良好的基礎。在以后的文章中將詳細介紹指針在程序中的應用。

參考文獻:

C語言大學實用教程蘇小紅等編電子工業出版社

C程序設計教程崔武子等編清華大學出版社

主站蜘蛛池模板: 香蕉伊思人视频| 91久久夜色精品| 亚洲91在线精品| 国产欧美高清| 欧美一区中文字幕| 蜜芽一区二区国产精品| 99在线观看免费视频| 国产亚洲精品91| 欧美精品高清| 国产无遮挡猛进猛出免费软件| 一级毛片网| 精品久久高清| 国产毛片不卡| 狠狠色噜噜狠狠狠狠色综合久| 中文字幕有乳无码| 国产高清又黄又嫩的免费视频网站| 国产成人综合亚洲欧美在| 女人18毛片久久| 久久a毛片| 波多野结衣久久高清免费| 中文字幕亚洲第一| 国产无码制服丝袜| 一级毛片a女人刺激视频免费| 午夜电影在线观看国产1区| 国产午夜一级淫片| 无码一区18禁| 99热线精品大全在线观看| 在线五月婷婷| 国产女同自拍视频| 国产精品护士| 欧美亚洲日韩中文| 试看120秒男女啪啪免费| 秘书高跟黑色丝袜国产91在线| 中文国产成人精品久久一| 色国产视频| 无码AV日韩一二三区| 亚洲国产亚综合在线区| 在线观看精品国产入口| 在线国产毛片手机小视频| 精品国产中文一级毛片在线看| 国产色婷婷| 婷五月综合| 伊伊人成亚洲综合人网7777| 色噜噜狠狠狠综合曰曰曰| 国产精品网曝门免费视频| 亚洲人成网18禁| 久久美女精品国产精品亚洲| 国产男女免费视频| 亚洲天堂.com| 国产交换配偶在线视频| 欧洲一区二区三区无码| 国产欧美在线观看视频| 久久久精品无码一区二区三区| 丝袜国产一区| 成·人免费午夜无码视频在线观看| 亚洲无码视频一区二区三区 | 99久久成人国产精品免费| 免费无码AV片在线观看中文| 日本一区高清| 欧美成人精品在线| 国产一区二区网站| 亚洲天堂精品视频| 日本黄网在线观看| 国产污视频在线观看| 国产毛片久久国产| 啪啪免费视频一区二区| 88av在线播放| 久久人人妻人人爽人人卡片av| 国产成人AV男人的天堂| 久久精品丝袜高跟鞋| 欧美成人影院亚洲综合图| 91小视频在线观看免费版高清| 国产一区二区三区视频| 激情影院内射美女| 欧美午夜久久| 久操线在视频在线观看| 日韩第一页在线| 亚洲一区二区无码视频| 亚洲精品视频在线观看视频| 超碰精品无码一区二区| 亚洲无码久久久久| 亚洲欧美另类日本|