




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
補(bǔ)充練習(xí)例1:閱讀源程序,寫(xiě)出運(yùn)行結(jié)果
#include<stdio.h>voidsub(intx,inty,int*z){*z=y-x;}
voidmain(){inta,b,c;sub(9,5,&a);sub(3,a,&b);sub(a,b,&c);printf(“%d,%d,%d\n”,a,b,c);}注意:
指向變量的指針變量做參數(shù),如何進(jìn)行參數(shù)的傳遞;-4-7-3例p指向float型數(shù)組,若執(zhí)行
p+1則p的值變?yōu)閜+1
4例p指向int型數(shù)組,且p=&a[0];
則p+1指向a[1]例inta[10];int*p=&a[2];p++;*p=1;例inta[10];int*p1=&a[2];int*p2=&a[5];則:p2-p1=3;a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a數(shù)組pp+1,a+1p+i,a+ip+9,a+91例2:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a,i;
數(shù)組元素地址的正確表示:
(A)&(a+1)(B)a++(C)&p(D)&p[i]√數(shù)組名是地址常量p++,p--(
)a++,a--(
)a+1,*(a+2)(
)不能對(duì)表達(dá)式求地址求的是指針p的地址
#include<stdio.h>voidmain(){inta[]={5,8,7,6,2,7,3};inty,*p=&a[1];y=(*--p)++;printf(“%d”,y);printf(“%d”,a[0]);}輸出:56pp58762730123456a例3:注意指針變量的運(yùn)算6#include<stdio.h>main(){inti,*p,a[7];
p=a;for(i=0;i<7;i++)scanf("%d",p++);printf("\n");for(i=0;i<7;i++,p++)printf("%d",*p);}例4:注意指針的當(dāng)前值p=a;pp5876273
0
1
2
3
4
5
6apppppp指針變量可以指到數(shù)組后的內(nèi)存單元for(p=a;p<(a+10);p++)printf("%d",*p);例5數(shù)組元素的引用#include<stdio.h>voidmain(){inta[10],i;
for(i=0;i<10;i++)a[i]=i;for(i=0;i<10;i++)printf("%d",a[i]);
}*(a+i)
int*p;for(p=a,i=0;i<10;i++,p++)*p=i;例6
閱讀下列源程序,試說(shuō)明其功能。#include<stdio.h>voidmain(){intadd(int*p,intn);inta[8]={1,2,3,4,5,6,7,8};int*p,sum;p=&a[0];
sum=add(p,8);printf(“sum=%d\n”,sum);}
intadd(int*p1,intn){inti,total=0;for(i=0;i<n;i+=2,p1+=2)total=total+*p1;return(total);}16例7:將數(shù)組a中的n個(gè)整數(shù)按相反順序存放
(1)
ij#include<stdio.h>voidinv(intx[],intn){intt,i,j,m=n/2;for(i=0;i<m;i++){j=n-1-i;t=x[i];x[i]=x[j];x[j]=t;}}main(){inti,a[10]={3,7,9,11,0,6,7,5,4,2};
inv(a,10);printf("Thearrayhasbeenreverted:\n");for(i=0;i<10;i++)printf("%d,",a[i]);printf("\n");}
37911067
5420123456789ijijijji11
7605947實(shí)參與形參均用數(shù)組m=523例8:將數(shù)組a中的n個(gè)整數(shù)按相反順序存放
(2)
實(shí)參用數(shù)組,形參用指針變量#include<stdio.h>voidinv(int*x,intn){intt,*p,*i,*j,m=n/2;p=x+m-1;i=x;j=x+n-1;for(;i<=p;i++,j--){t=*i;*i=*j;*j=t;}}main(){inti,a[10]={3,7,9,11,0,6,7,5,4,2};inv(a,10);printf("Thearrayhasbeenreverted:\n");for(i=0;i<10;i++)printf("%d,",a[i]);printf("\n");}37911067542a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]xp=x+m-1a數(shù)組60711594723ijijijjiji例9:將數(shù)組a中的n個(gè)整數(shù)按相反順序存放(3)
實(shí)參與形參均用指針變量#include<stdio.h>voidinv(int*x,intn){intt,*i,*j,*p,m=n/2;i=x;j=x+n-1;p=x+m-1;for(;i<=p;i++,j--){t=*i;*i=*j;*j=t;}}main(){inti,a[10],*p=a;for(i=0;i<10;i++,p++)scanf("%d",p);
p=a;
inv(p,10);
printf("Thearrayhasbeenreverted:\n");for(p=a;p<a+10;p++)printf("%d",*p);}例10:將數(shù)組a中的n個(gè)整數(shù)按相反順序存放(4)
實(shí)參用指針變量,形參用數(shù)組#include<stdio.h>voidinv(intx[],intn){intt,i,j,m=n/2;for(i=0;i<=m-1;i++){j=n-1-i;t=x[i];x[i]=x[j];x[j]=t;}}main(){inti,a[10],*p=a;for(i=0;i<10;i++,p++)scanf("%d",p);
p=a;
inv(p,10);printf("Thearrayhasbeenreverted:\n");for(p=arr;p<arr+10;p++)printf("%d",*p);}示例:inta[10],*p=a;則:p++/*p與&a[1]等價(jià)*/*p++/*結(jié)合性自右到左,++與*運(yùn)算級(jí)別相同;相當(dāng)于*(p++),作用是先得到P指向的變量的值(即*P),然后再執(zhí)行p+1—>p*/*(++p)/*先執(zhí)行p+1—>p,再執(zhí)行*p*/(*p)++/*先執(zhí)行*p,再執(zhí)行*p的值加1,p值不變*/#include<stdio.h>voidmain(){inta[10]={0,10,20,30,40,50,60},*p=a;printf(“%d\n”,*p++);printf(“%d\n”,*p);printf(“%d\n”,*(++p));printf(“%d\n”,(*p)--);printf(“%d\n”,*p);}010202019例11:逆序打印字符串算法:設(shè)字符串為q;令p指向串尾;打印字符*p,并將p向前移,直到p指向串首。#include<stdio.h>main(){char*p,*q=“Language”;
for(p=q;*p!=‘\0’;)p++;
for(p--;p>=q;p--)putchar(*p);putchar(‘\n’);}#include<stdio.h>#include<string.h>main(){char*p,*q=“Language”;intn;
n=strlen(q);p=q+n;
for(p--;p>=q;p--)putchar(*p);putchar(‘\n’);}例12:編寫(xiě)一個(gè)函數(shù)判斷一個(gè)字符串是否為回文(順讀與逆讀相同)。已知:字符串指針變量p(作參數(shù))結(jié)果:是(1)否(0)(返回值)算法:
1.令q指向最后一個(gè)字符;
2.若*p==*q,則兩指針向里靠攏,直到p>=q,則return1,否則return0#include<stdio.h>intishuiwen(char*p){char*q=p;
while(*q!=‘\0’)q++;q--;
while(p<q){if(*p==*q){p++;q--;}else{return0;}
}return1;}#include<stdio.h>intishuiwen(char*p){char*q=p;
while(*q)q++;
q--;
while(p<q){if(*p++!=*q--){return0;}
}return1;}‘\0’字符的ASCII碼是0例13.注意使用的區(qū)別:
chard[10],*q;intx=5,*p=&x;d=“Hello!”;(
)q=“Hello”;(
)*q=“Hello”;(
)*p=100;(
)scanf(“%s”,d);(
)scanf(“%s”,q);(
)scanf(“%d”,p);(
)printf(“%s”,d);(
)
printf(“%s”,q);(
)printf(“%s”,*q);(
)printf(“%d”,p);(
)charstr[]={“Hello!”};(
)charstr[]=“Hello!”;(
)charstr[]={‘B’,‘o’,‘y’};(
)char*cp=“Hello”;(
)inta[]={1,2,3,4,5};(
)int*p={1,2,3,4,5};(
)charstr[10],*cp;inta[10],*p;str=“Hello”;(
)cp=“Hello!”;(
)a={1,2,3,4,5};(
)p={1,2,3,4,5};(
)例14用指向字符串的指針變量實(shí)現(xiàn)字符串的輸出。#include<stdio.h>voidmain(){chars[]=“VC++6.0”,*p;p=s;printf("%s\n",s);printf("%s\n",p);}#include<stdio.h>voidmain(){char*s1=“VC++6.0";
s1+=2;printf("%s\n",s1);}
例15
輸出字符串中的部分?jǐn)?shù)據(jù)運(yùn)行結(jié)果++6.0#include<stdio.h>voidmain(){chara[20],b[20],*p1,*p2;gets(a);p1=a;p2=b;
for(;*p1!='\0';p1++,p2++)*p2=*p1;*p2='\0';printf("stringais:%s\n",a);printf("stringbis:%s\n",b);}例16將字符串a(chǎn)復(fù)制到字符串b。a[0]b[0]\0a[0]
P1
P2\0
P1
P2
P1
P2
strcpy(p2,p1);例17
有一行字符,要求刪去指定的字符。#include<stdio.h>voidmain(){voiddel_ch(char*p,charch);chars[80],*pt=s,ch;printf("請(qǐng)輸入一個(gè)字符串:\n");gets(s);printf("請(qǐng)輸入要被刪除的字符:\n");scanf(“%c”,&ch);
del_ch(pt,ch);
printf("新的字符串為:\n%s\n",s);}voiddel_ch(char*p,charch){char*q=p;for(;*p!='\0';p++)if(*p!=ch)*q++=*p;*q='\0';}例18
:閱讀下列源程序,請(qǐng)寫(xiě)出運(yùn)行結(jié)果。
#include<stdio.h>voidmain(){chara[]=”ABCD”,*p=&a[3];while(p>=a)printf(“%s\n”,p--);}
例19
:閱讀下列源程序,請(qǐng)寫(xiě)出運(yùn)行結(jié)果。
#include<stdio.h>voidmain(){chars[]=”159”,*p=s;printf(“%c”,*p++);printf(“%c”,*p++);}
結(jié)果:15例20閱讀下列源程序,寫(xiě)出運(yùn)行結(jié)果。
#include<stdio.h>voidprt(int*m,intn){intj;for(j=0;j<n;j++)m[j]++;}voidmain(){inta[]={1,2,3,4,5},j;
prt(a,5);for(j=0;j<5;j++)printf(“%d”,a[j]);}23456例21下面程序段的運(yùn)行結(jié)果是?
chars[80],*sp=“HELLO!”;sp=strcpy(s,sp);s[0]=‘h’;puts(sp);#include<stdio.h>#include<string.h>voidfun(char*p);inti,m,n; chara[100],b[100],*p,*q;voidmain(){printf("請(qǐng)輸入一字符串:\n"); gets(a); printf("請(qǐng)輸入m值:\n"); scanf("%d",&m); n=strlen(a); if(m<=n) { fun(q); printf("新字符串為:\n"); puts(b); } elseprintf("輸入m值不合法\n");}voidfun(char*q){
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度藥店藥品零售連鎖品牌授權(quán)及供應(yīng)鏈合同
- 二零二五年度涉及知識(shí)產(chǎn)權(quán)的方協(xié)議解約及糾紛解決合同
- 不動(dòng)產(chǎn)買(mǎi)賣(mài)合同書(shū)及補(bǔ)充協(xié)議條款
- 英文短句記憶技巧教案
- 海底兩萬(wàn)里觀后感體會(huì)
- 農(nóng)業(yè)經(jīng)濟(jì)政策解讀方案
- 傳媒廣告行業(yè)廣告效果數(shù)據(jù)分析與優(yōu)化方案
- 互聯(lián)網(wǎng)+健康產(chǎn)業(yè)服務(wù)協(xié)議
- 倉(cāng)庫(kù)庫(kù)房租賃合同書(shū)
- 童話(huà)森林的故事解讀
- 2024-2030年中國(guó)碳酸氫銨行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 幼兒園教師資格考試面試2024年下半年試題及解答
- HG∕T 3792-2014 交聯(lián)型氟樹(shù)脂涂料
- 《自貢市國(guó)土空間總體規(guī)劃(2021-2035年)》
- 人工智能訓(xùn)練師考核模塊需求說(shuō)明
- 跨文化管理案例
- 北師大版七年級(jí)上冊(cè)數(shù)學(xué)《基本平面圖形》單元作業(yè)設(shè)計(jì)
- 古村落鄉(xiāng)村文化旅游古鎮(zhèn)旅游外文文獻(xiàn)翻譯2014年
- 2024年臺(tái)州椒江中考二模英語(yǔ)試題含答案
- 四年級(jí)語(yǔ)文閱讀理解十篇(含答案)
- 加工中心操作規(guī)程培訓(xùn)
評(píng)論
0/150
提交評(píng)論