freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c課件第八章指針和引用(編輯修改稿)

2024-11-13 00:57 本頁面
 

【文章內(nèi)容簡介】 a e v a s \0 \0 \0 \0 e v a s \0 \0 \0 \0 \0 w e n \0 \0 \0 \0 n e p o 例 將若干個(gè)字符串按升序排序后輸出 (教材 P152) void main(void) { char *str[]={…}。 //定義數(shù)組并初始化 char *p1。 //定義指針 int i,j,k。 //按升序排序 (改進(jìn)后的選擇排序 ) for(i=0。i=4。i++) { k=i。 for(j=i+1。j5。j++) if(strcmp(str[k],str[j])0) k=j。 //k記為當(dāng)前最小字符串的位置 if(k!=i) {p1=str[k]。str[k]=str[i]。str[i]=p1。}//交換指針的指向 ,str[i]和 str[k]均為指針 } } 指針與函數(shù) 指針可以用作函數(shù)參數(shù),這在想通過調(diào)用函數(shù)來改變參數(shù)的值很重要。 void swap(int ,int ); void main( ) { int x1=100,x2=200。 cout“交換前x1=“x1“,x2=”x2endl。 swap(x1,x2)。 cout“交換后x1=“x1“,x2=”x2。 } void swap(int a,int b) { int temp。 temp=a。a=b。b=temp。} 100 200 x1 x2 x1=100,x2=200 進(jìn)入 swap函數(shù) x1,x2分別將值賦給 a,b temp a b 100 200 100 200100temp=a。 a=b。 b=temp。 ,b的交換不影響 x1,x2 退出 p,x x2未交換 void swap(int * ,int * ); void main( ) { int x1=100,x2=200。 cout“交換前x1=“x1“,x2=”x2endl。 swap(amp。x1,amp。x2)。 cout“交換后 x1=“x1“,x2=”x2。 } void swap(int *p1,int *p2) { int temp。 temp=*p1。 *p1=*p2。 *p2=temp。 } 100 200 x1 x2 x1=100,x2=200 進(jìn)入 swap函數(shù) ,分別將 xx2的地址賦給 p1,p2 p1 p2 temp amp。x1 amp。x2 100 200100temp=*p1。 *p1=*p2。 p2=temp。swap函數(shù)執(zhí)行過程中p1,p2的值沒有變化,退出 swap函數(shù)后 ,x1,x2的值交換。 實(shí)際上, 傳址方式是一種特殊的傳值方式 。將指針變量的值傳遞給形參 (當(dāng)然形參也應(yīng)該是指針變量 ),由于指針變量的值就是地址,所以這種傳值方式就成為了傳址方式。 特別要注意, 傳值方式中形參的改變不會(huì)影響到實(shí)參的改變,這一點(diǎn)傳址方式也不例外 !上例中之所以能交換實(shí)參所指向的兩個(gè)數(shù),是因?yàn)樵诤瘮?shù)中交換的是形參所指向的變量的值,由于形參和實(shí)參指向同一個(gè)變量,因此實(shí)參指向變量最終交換,但實(shí)參的值卻沒有變化。 void swap(int * ,int * ); void main( ) { int x1=100,x2=200,*pt1=amp。x1,*pt2=amp。x2。 cout“交換前 x1=“x1“,x2=”x2endl。 swap(pt1,pt2)。 cout“交換后 x1=“x1“,x2=”x2。 } void swap(int *p1,int *p2) { int *temp。 temp=p1。 p1=p2。 p2=temp。 } int max,min。 void max_min_value(int *p,int n) { int i。 max=min=*p。 for(i=1,p++。in。i++,p++) if(*pmax) max=*p。 else if(*pmin) min=*p。 } void main( ) { int number[10],i。 for(i=0。i10。i++) cinnumber+i。 max_min_value(number,10)。 cout“max=“max“min=”min。} 例:從 10個(gè)數(shù)中找出其中的最大值和最小值。 例:有一個(gè)班, 3個(gè)學(xué)生各 4門成績,要求查找有成績不及格的學(xué)生,并輸出該學(xué)生的全部成績。 void search(float *p,int m,int n) {int i,j,flag。 for(i=0。im。i++) { flag=0。 for(j=0。jn。j++) if(*(p+i*n+j)60) {flag=1。break。} if (flag==1) {printf(“\nNO.%d fails,his score:\n”,i )。 for(j=0。jn。j++) printf(“% ”,*(p+i*n+j))。 } } } main( ) {float score[3][4]={......}。 ....... search(score[0],3,4)。......} void search(float (*p)[4],int m) {int i,j,flag。 for(i=0。im。i++) { flag=0。 for(j 。j4。j++) if(*(*(p+i)+j)60) {flag=1。break。} if ( lag==1) {cout“\nNO.”i“fails,his score:\n”。 for(j=0。j4。j++) cout*(*(p+i)+j)。 ,3)。......} 例 :制作一個(gè)簡單的菜單。 void menu( char *p[ ] , int m) { int i。 system(“cls” )。 for(i=0。im。i++) {coutp[i]。 } cout“\n Enter a choice:”。 } main( ) {char *p[4]={“Open”,”New”,”Save”,”Save as”}。 menu(p,4)。 } 返回指針的函數(shù) void strcpy(char s1[],char s2[]) { int i=0。 while(s2[i]!=?\0?) { s1[i]=s2[i]。 i++。 } s1[i]=?\0?。 } char *strcpy(char *s1,char *s2) { int i=0。 while(*(s2+i)!=?\0?) {*(s1+i)=*(s2+i)。 i++。 } s1[i]=?\0?。 return s1。 } 注意 :返回指針的函數(shù),其函數(shù)體中的 return語 句的參數(shù)必須為全局變量的指針、靜態(tài)變量指針 或形參的指針 (如果形參為指針類型或引用類型 的話 ),不能為局部變量指針。 返回的是變量地址,必須保證函數(shù)返回后,這個(gè)變量仍然存在。要返回函數(shù)中局部變量的地址,應(yīng)聲明為靜態(tài)的。 char *string_name ( int n ) { static char * string[ ]={ “illegal string”, “string 1”, “string 2”, “string 3” } return ( n1 || n3 ) ? string[0]: string[n]。 } 例 將輸入的一個(gè)字符串按逆序輸出 (教材 P164) char *flip(char *ptr) //指針函數(shù) { char *p1,*p2,temp。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1