資源描述:
《指向多維數(shù)組的指針變量》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、2.指向多維數(shù)組的指針變量1)指向數(shù)組元素的指針變量(見例10.11)2)指向由m個(gè)元素組成的一維數(shù)組的指針變量類型說明符(*指針變量名)[長度]int(*p)[4]而p+i(a+i)則指向一維數(shù)組a[i]或*(a+i),*(p+i)+j是二維數(shù)組i行j列的元素的地址,而*(*(p+i)+j)則是i行j列元素的值。中“類型說明符”為所指數(shù)組的數(shù)據(jù)類型。“*”表示其后的變量是指針類型?!伴L度”表示二維數(shù)組分解為多個(gè)一維數(shù)組時(shí),一維數(shù)組的長度,也就是二維組的列數(shù)。應(yīng)注意“(*指針變量名)”兩邊的括號(hào)不可少,如缺少括號(hào)則表示是
2、指針數(shù)組,意義就完全不同了。、pp+1p+2p是一個(gè)指針變量,它指向包含4個(gè)元素的一維數(shù)組。例10.11用指針變量輸出二維數(shù)組元素的值(1)指向數(shù)組元素的指針變量#includevoidmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int*p;for(p=a[0];p<a[0]+12;p++){if((p-a[0])%4==0)printf(″\n″);printf(″%4d″,*p);}}運(yùn)行結(jié)果如下:13579111315192123若int
3、a[3][4];則int(*p1)[4]=a;—指向行(0行)行指針int*p2=a[0];—指向元素(0行0列)列指針int*p3=*a;—指向元素(0行0列)列指針(2)指向由m個(gè)元素組成的一維數(shù)組的指針變量例10.12輸出二維數(shù)組任一行任一列元素的值#includevoidmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int(*p)[4],i,j;p=a;scanf(″i=%d,j=%d″,&i,&j);printf(″a[%d,%d]=%d
4、″,i,j,*(*(p+i)+j));}運(yùn)行情況如下:i=1,j=2↙(本行為鍵盤輸入)a[1,2]=133.用指向數(shù)組的指針作函數(shù)參數(shù)例10.13有一個(gè)班,3個(gè)學(xué)生,各學(xué)4門課,計(jì)算總平均分?jǐn)?shù)以及第n個(gè)學(xué)生的成績。這個(gè)題目是很簡單的。只是為了說明用指向數(shù)組的指針作函數(shù)參數(shù)而舉的例子。用函數(shù)average求總平均成績;用函數(shù)search找出并輸出第i個(gè)學(xué)生的成績。例:3個(gè)學(xué)生各學(xué)4門課,計(jì)算總平均分,并輸出第n個(gè)學(xué)生成績voidmain(){voidaverage(float*p,intn);voidsearch(
5、float(*p)[4],intn);floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};average(*score,12);search(score,2);}voidaverage(float*p,intn){float*p_end,sum=0,aver;p_end=p+n-1;for(;p<=p_end;p++)sum=sum+(*p);aver=sum/n;printf("average=%5.2f",aver);}voidsearch(
6、float(*p)[4],intn){inti;printf("No.%d:",n);for(i=0;i<4;i++)printf("%5.2f",*(*(p+n)+i));}列指針行指針函數(shù)說明floatp[][4]6567706080879081909910098pp?p[n][i]程序運(yùn)行結(jié)果如下:average=82.25ThescoreofNo.2are:90.00 99.00?。保埃?00?。梗?00例3個(gè)學(xué)生各學(xué)4門課,計(jì)算總平均分,并查找一門以上課不及格學(xué)生,輸出其各門課成績voidsearch(fl
7、oat(*p)[4],intn){inti,j,flag;for(j=0;j8、{...},{...},{...}};search(score,3);}6552796080879081909910098p?p[j][i]略在C語言中,可以用兩種方法訪問一個(gè)字符串。1)用字符數(shù)組存放一個(gè)字符串,然后輸出該字符串【例10.15】#includevoidmain(){charstri