《高級語言程序設(shè)計教學(xué)》第8章4次_第1頁
《高級語言程序設(shè)計教學(xué)》第8章4次_第2頁
《高級語言程序設(shè)計教學(xué)》第8章4次_第3頁
《高級語言程序設(shè)計教學(xué)》第8章4次_第4頁
《高級語言程序設(shè)計教學(xué)》第8章4次_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論