版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
指針運算符
&——取變量或存儲單元的地址*——
取指針所指向的單元(變量)結(jié)論:*pt相當于a(*pt)++相當于a++&*pt=&a=pt*&a=*pt=a
&aapt*pta=1;例:inta,*pt;pt=&a;*pt=1;1編輯ppt-2-*p相當于變量a指針與變量inta,*p;p=&a;
2編輯ppt【例8-1】編寫一個的子程序,子程序的功能為交換兩個變量的值#include"stdio.h"voidswap(intx,inty);voidmain(void){ inta,b; printf("請輸入交換的數(shù)值:"); scanf("%d%d",&a,&b); printf("交換前a=%d,b=%d\n",a,b); swap(a,b); printf("交換后a=%d,b=%d\n",a,b);}voidswap(intx,inty){inttemp;temp=x;x=y;y=temp;}單向值傳遞3編輯ppt【例8-1】編寫一個的子程序,子程序的功能為交換兩個變量的值(改進)#include<stdio.h>voidswap(int*x,int*y);voidmain(){inta,b;scanf("%d%d",&a,&b);printf("&a=%x,&b=%x\n",&a,&b);printf("調(diào)用前:a=%d,b=%d\n",a,b);swap(&a,&b);printf("調(diào)用后:a=%d,b=%d\n",a,b);}地址傳遞4編輯pptvoidswap(int*x,int*y){ intt;printf("\n-----swap-----\n");
printf("x=%x,y=%x\n",x,y);
t=*x;*x=*y;*y=t;printf("-----swap-----\n\n");}5編輯ppt例編寫函數(shù)求出二維整型數(shù)組中元素的最大值及其下標號#include<stdio.h>#defineM3#defineN2intmaxarray(inta[M][N],intm,intn,int*pmaxi,int*pmaxj);voidmain(){inta[M][N]={1,2,3,4,5,6};intmax,maxi,maxj;max=maxarray(a,M,N,&maxi,&maxj);printf(“a[%d][%d]=%d”,max,maxi,maxj);}6編輯pptintmaxarray(inta[M][N],intm,intn,int*pmaxi,int*pmaxj){inti,j,max=a[0][0];for(i=0;i<m;i++)for(j=0;j<n;j++){if(max<a[i][j]){max=a[i][j];
*pmaxi=i;*pmaxj=j;}}returnmax;}7編輯ppt-8-a[i]*(a+i)p[i]*(p+i)數(shù)組元素表示法數(shù)組元素地址表示法&a[i]a+i&p[i]p+i指針與一維數(shù)組inta[10],*p=a;
8編輯ppt下標法main(){inta[10];i;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%d",a[i]);}數(shù)組名計算地址法main(){inta[10];i;for(i=0;i<10;i++)scanf("%d",a+i);for(i=0;i<10;i++)
printf("%d",*(a+i));}例:輸入輸出整型數(shù)組a的全部元素。(假有10個元素)指針法main(){inta[10],i,*p;p=&a[0];for(i=0;i<10;i++)scanf("%d",p+i);for(i=0;i<10;i++)
printf("%d",*(p+i));}9編輯ppt【例】寫一個函數(shù),將包含n個元素的數(shù)組進行排序voidmain()/*冒泡*/{intn=10,a[10]={3,2,4,5,6,8,9,25,21,10};inti,j,temp;for(i=0;i<n-1;i++)for(j=0;i<n-i-1;j++)if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}voidsort(inta[],intn)a[j]*(a+j)voidsort(int*a,intn)if(*(a+j)>*(a+j+1))
temp=*(a+j);*(a+j)=*(a+j+1);*(a+j+1)=temp;
10編輯ppt8.6指針與數(shù)組編程實例【例8-7】數(shù)列的中位數(shù)是數(shù)列中按照數(shù)值大小排在中間位置的數(shù)。例如:數(shù)列1,2,3,4,5的中位數(shù)為3。算法:先對數(shù)列排序,然后尋找排序序列的中位數(shù)。1111編輯ppt#include<stdio.h>voidsort(inta[],intn);voidmain(){intser[100]; inti,num;
printf("Inputlengthofserial:\n");
scanf("%d",&num);
printf("inputserialelements:\n");for(i=0;i<num;i++)scanf("%d",ser+i);
sort(ser,num);printf("Themedianofserialis%d\n",*(ser+num/2));}12編輯pptvoidsort(inta[],intn){inti,temp;int*p;for(i=0;i<n-1;i++)
for(p=a;p<a+n-i-1;p++)if(*p>*(p+1))
{temp=*p; *p=*(p+1); *(p+1)=temp;}}13Inputlengthofserial:5inputserialelements:1-3236715Themedianofserialis2313編輯ppt8.7指針與字符串字符串表示形式用字符數(shù)組實現(xiàn)main(){charstring[]=“IloveChina!”;printf(“%s\n”,string);printf(“%s\n”,string+7);}stringIstring[0]string[1]lstring[2]ostring[3]vstring[4]estring[5]string[6]Cstring[7]hstring[8]istring[9]nstring[10]astring[11]!string[12]\0string[13]string+7IloveChina!China!14編輯ppt用字符指針實現(xiàn)main(){char*cp=“IloveChina!”;printf(“%c\n”,*cp);
printf(“%s\n”,cp);cp+=7;
printf(“%s\n”,cp);}cpIloveChina!\0cpIIloveChina!China!15編輯pptffc0Iffc1loveChina!\0......stringcharstring[20]=“IloveChina!”;char*cp=“IloveChina!”;cp!anihCevolI存放常量的空間aa00aa0016編輯ppt字符型指針變量與字符數(shù)組charstr[20];與
char*cp;str由若干元素組成,每個元素放一個字符
cp只是一個指針變量,存放字符串首地址
charstr[20];str=“IloveChina!”;char*cp;cp=“IloveChina!”;str是地址常量;cp是地址變量cp接受鍵入字符串時,必須先開辟存儲空間例charstr[10];scanf(“%s”,str);()而char*cp;scanf(“%s”,cp);()改為:char*cp,str[10];cp=str;scanf(“%s”,cp);()17編輯pptcharstr[]={“Hello!”};charstr[]=“Hello!”;
charstr[]={‘H’,‘e’,‘l’,‘l’,‘o’,‘!’};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};分析下列用法正確與否18編輯ppt【例8-9】寫程序,判斷一個單詞是否為回文?;匚闹傅氖菃卧~按從前到后與從后到前的順序讀都相同,例如“l(fā)evel”就是是一個回文單詞。#include<stdio.h>#include<stdlib.h>#defineMAXLEN80voidmain(){char*str; intflag;
intpal(char*); if((str=(char*)
malloc(MAXLEN))==NULL){ printf("Memoryallocationerror!\n");exit(0);} 19編輯pptprintf("Inputaword:\n");scanf("%s",str);while(*str!='#'){flag=pal(str);if(flag)printf("%sisapalindrome!\n",str);elseprintf("%sisn'tapalindrome!\n",str);printf("Inputaword:\n");scanf("%s",str);}free(str);}20編輯pptintpal(char*str)/*判斷回文*/{ char*p,*q;
p=str;q=str; while(*q!=‘\0’)/*p指向首部,q指向尾部*/ q++; q--; while(p<q)if(*p==*q){ p++;q--; } elsebreak; return(p>=q);}level\0pqpqpq21編輯pptC語言字符串操作的庫函數(shù)1.字符串連接函數(shù)strcatchar*strcat(char*s1,char*s2){char*p,*q;p=s1;q=s2;while(*(p+1)!=0)p++;while(*q!=0){*p=*q;p++;q++;}*p=0;returns1;}22編輯pptC語言字符串操作的庫函數(shù)2.字符串拷貝函數(shù)strcpychar*strcpy(char*s1,char*s2)功能:把字符串s2復(fù)制到字符串s1中。例如:
charstr[80]; strcpy(str,"abcd");23編輯pptC語言字符串操作的庫函數(shù)3.字符
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國同步發(fā)電機行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025版事業(yè)單位聘用合同續(xù)簽與培訓(xùn)發(fā)展支持協(xié)議3篇
- 2025年度個人股權(quán)交易合同模板2篇
- 2025年度個人戶外用品租賃融資合同范本民間版4篇
- 科技驅(qū)動下的校園安全教育新模式
- 二零二五年度出租車企業(yè)車輛油耗監(jiān)控合同3篇
- 二零二五年度車牌租賃企業(yè)信用評估合同協(xié)議4篇
- 二零二五年度車輛維修配件無償借用合作協(xié)議4篇
- 2025年度企事業(yè)單位食堂及便利店整體承包合作協(xié)議3篇
- 跨學(xué)科教育背景下的多元職業(yè)發(fā)展
- 30題紀檢監(jiān)察位崗位常見面試問題含HR問題考察點及參考回答
- 高考作文復(fù)習(xí)任務(wù)驅(qū)動型作文的審題立意課件73張
- 詢價函模板(非常詳盡)
- 《AI營銷畫布:數(shù)字化營銷的落地與實戰(zhàn)》
- 麻醉藥品、精神藥品、放射性藥品、醫(yī)療用毒性藥品及藥品類易制毒化學(xué)品等特殊管理藥品的使用與管理規(guī)章制度
- 一個28歲的漂亮小媳婦在某公司打工-被老板看上之后
- 乘務(wù)培訓(xùn)4有限時間水上迫降
- 2023年低年級寫話教學(xué)評語方法(五篇)
- DB22T 1655-2012結(jié)直腸外科術(shù)前腸道準備技術(shù)要求
- GB/T 16474-2011變形鋁及鋁合金牌號表示方法
- 氣管切開病人的觀察與護理【版直接用】課件
評論
0/150
提交評論