




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第06章指針與引用《C++程序設(shè)計基礎(chǔ)教程》課件第06章指針與引用《C++程序設(shè)計基礎(chǔ)教程》課件2第6章指針6.1指針的定義與初始化6.2指針的使用6.3指針與數(shù)組6.4指針與字符串6.5指針與函數(shù)6.6引用6.7應(yīng)用實例2第6章指針6.1指針的定義與初始化36.1指針的定義與初始化36.1指針的定義與初始化4指針:變量的地址。指針變量:專門用來存放另一變量的地址(指針)的變量。理解:一種特殊的變量,用來指向另一變量。其存放內(nèi)容是另一變量的地址。6.1指針的定義與初始化4指針:變量的地址。6.1指針的定義與初始化56.1.1指針的定義一般形式基類型*
指針變量名;int
*p1,*p2;基類型:所指向變量的類型,而非指針本身數(shù)據(jù)值的類型。指針本身類型是unsignedlongint。指針變量名是p1,而不是*p1,即“*”只表示該變量是指針變量。56.1.1指針的定義一般形式66.2指針的使用兩個與指針變量有關(guān)的運算符
(1)&
取地址運算符(2)*
指針運算符(間接訪問運算符)例,&a為變量a的地址,*p為指針變量p所指向的存儲單元。66.2指針的使用兩個與指針變量有關(guān)的運算符7(1)p1=&a;&*p1?&*p1←→&a(2)*&a←→
a。6.2指針的使用*p1←→a7(1)p1=&a;6.2指針的使用*p1←→a8[例6.3]輸入a和b兩個數(shù),按先大后小的順序輸出,a和b的值不變。main(){ inta,b,*p1,*p2,*p; cin>>a>>b;p1=&a;p2=&b; if(a<b) { p=p1;p1=p2;p2=p;} cout<<"a=“<<a<<“,b="<<b; cout<<"Max=“<<*p1<<",Min="<<*p2;}輸出:a=10,b=20Max=20,Min=106.2指針的使用8[例6.3]輸入a和b兩個數(shù),按先大后小的順序輸出,a和指針變量作函數(shù)參數(shù)[例6.4]用函數(shù)實現(xiàn)兩個變量的交換voidSwap(int*p1,int*p2){ int*t; t=p1; p1=p2; p2=t;}main(){ inta=5,b=9;
Swap(&a,&b); cout<<"a="<<a<<",b="<<b;}輸出:a=5,b=9intt;t=*p1; *p1=*p2; *p2=t;Swap(a,b);指針變量作函數(shù)參數(shù)輸出:a=5,b=9intt;Sw106.3.1指針與一維數(shù)組數(shù)組元素的指針:數(shù)組元素的地址。如:inta[5];int*p,*q;p=&a[0];q=&a[2];*p=5;*q=8;a[0]a[1]a[2]a[3]a[4]p↙↙q&a[0]&a[2]58
6.3指針與數(shù)組106.3.1指針與一維數(shù)組a[0]a[1]a[2]a[311規(guī)定:數(shù)組名代表數(shù)組的首地址,即第一個元素a[0]的地址。a≌
&a[0]。若:p=a;
≌
p=&a[0];則:p+1≌&a[1] *(p+1)≌a[1] p+i≌&a[i] *(p+i)≌a[i]p+1指向數(shù)組的下一個元素a[0]a[1]a[2]a[3]a[4]app+1a[i]≌*(a+i)p[i]≌*(p+i)
6.3指針與數(shù)組11規(guī)定:數(shù)組名代表數(shù)組的首地址,即第一個元素a[0]的地址12引用一個數(shù)組元素1)下標法,如a[i];2)指針法,如*(a+i)或*(p+i)。3)
用指針變量指向數(shù)組元素
6.3指針與數(shù)組12引用一個數(shù)組元素6.3指針與數(shù)組13例6.6輸出數(shù)組中的全部元素intmain(){inta[10],i;for(i=0;i<10;i++)cin>>a[i];//引用數(shù)組元素a[i]
for(i=0;i<10;i++)cout<<<<"";}(1)下標法(2)指針法
將a[i]替換成*(a+i)a[i]13例6.6輸出數(shù)組中的全部元素intmain(){14intmain(){inta[10];int*p;for(p=a;p<a+10;p++)cin>>*p;//輸入a[0]~a[9]
for(p=a;p<a+10;p++)cout<<*p<<"";//p先后指向a[0]~a[9]}(3)用指針變量指向數(shù)組元素例6.6輸出數(shù)組中的全部元素14intmain(){(3)用指針變量指向數(shù)組元素15若p指向a[i]),則:(1)*p++作用:先得到*p,即a[i],然后p自加1。
for(p=a;p<a+10;p++)cout<<*p;for(p=a;p<a+10;)cout<<*p++;*++p(2)(*p)++
作用:所指元素加1,即a[i]++注:元素值加1,而非指針值加1。例6.6輸出數(shù)組中的全部元素≌≌*(p++)先p自加1,再*運算,得a[i+1]。15若p指向a[i]),則:例6.6輸出數(shù)組中16intmain(){voidselect_sort(int*p,intn);inta[10],i;for(i=0;i<10;i++)cin>>a[i];select_sort(a,10);//數(shù)組名作實參cout<<"thesortedarray:"<<endl;for(i=0;i<10;i++)cout<<a[i]<<"";}voidselect_sort(int*p,intn){inti,j,k,t;for(i=0;i<n-1;i++){
k=i;for(j=i+1;j<n;j++)if(*(p+j)<*(p+k))k=j;
t=*(p+k);*(p+k)=*(p+i);*(p+i)=t;}}例6.7將10個整數(shù)按由小到大排序6.3.2用指針變量作函數(shù)參數(shù)接收數(shù)組地址16intmain(){voidselect_sor176.3.2指針與二維數(shù)組1.多維數(shù)組元素的地址inta[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};176.3.2指針與二維數(shù)組1.多維數(shù)組元素的地址18a代表首行的起始地址(&a[0]),a+1代表a[1]行的首地址,即&a[1]。a[0],a[1],a[2]是一維數(shù)組名,a[0]代表一維數(shù)組a[0]中0列元素的地址,即&a[0][0]。a[1]的值是&a[1][0],a[2]的值是&a[2][0]。6.3.2指針與二維數(shù)組18a代表首行的起始地址(&a[0]),a+1代表a[1]行19a[0][1]的地址:&a[0][1],a[0]+1。a[0][1]:*(a[0]+1)或*(*(a+0)+1)
。a[i][j]:*(a[i]+j)或*(*(a+i)+j)
。6.3.2指針與二維數(shù)組19a[0][1]的地址:&a[0][1],a[0]+1。620(2)指向一維數(shù)組的指針變量指針的增值以一維數(shù)組的長度為單位。6.3.2指針與二維數(shù)組20(2)指向一維數(shù)組的指針變量6.3.2指針與二維數(shù)組21例6.8輸出二維數(shù)組任一行列元素的值voidmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int(*p)[4],i,j;cin>>i>>j;p=a;cout<<*(*(p+i)+j)<<endl;}21↙1921例6.8輸出二維數(shù)組任一行列元素的值voidmain226.4指針與字符串#include<string>voidmain(){char
str[]="IloveCHINA!";cout<<str<<endl;}1.用字符數(shù)組存放一個字符串例6.9定義一個字符數(shù)組并初始化,然后輸出。string
str="IloveCHINA!";char
*str="IloveCUMT!";226.4指針與字符串#include<string>123例6.10將字符串str1復(fù)制為字符串str2voidmain(){charstr1[]="IloveCHINA!",str2[20],*p1,*p2;
p1=str1;p2=str2;for(;*p1!='\0';p1++,p2++)
*p2=*p1;
*p2='\0';p1=str1;p2=str2;cout<<"str1is:"<<p1<<endl;cout<<"str2is:"<<p2<<endl;}str1is:IloveCHINA!str2is:IloveCHINA!23例6.10將字符串str1復(fù)制為字符串str2void246.5指針與函數(shù)6.5.1用函數(shù)指針變量調(diào)用函數(shù)函數(shù)的指針:函數(shù)的入口地址。intmax(intx,inty){
returnx>y?x:y;}例6.11求a和b中的大者246.5指針與函數(shù)6.5.1用函數(shù)指針變量調(diào)用函數(shù)in25voidmain(){int(*p)(int,int);
//定義指向函數(shù)的指針變量pinta,b,m;p=max;
//p指向函數(shù)maxcin>>a>>b;
m=p(a,b);cout<<"max="<<m<<endl;}例6.11求a和b中的大者25voidmain(){例6.11求a和b中的大者266.5.2指針作為函數(shù)返回值指針函數(shù):返回指針值的函數(shù)。定義指針函數(shù)的一般形式類型名*函數(shù)名(參數(shù)表列);例,
int*a(intx,inty);266.5.2指針作為函數(shù)返回值指針函數(shù):返回指針值的函數(shù)276.7指針數(shù)組和指向指針的指針6.7.1指針數(shù)組的概念指針數(shù)組:元素為指針類型數(shù)據(jù),即每個數(shù)組元素相當于一個指針變量。一維指針數(shù)組的定義形式類型名*數(shù)組名[數(shù)組長度];例,int*p[4];int(*p)[4];276.7指針數(shù)組和指向指針的指針6.7.1指針數(shù)組的概28例6.15若干字符串按字母順序輸出voidmain(){voidsort(char*name[],intn);//函數(shù)聲明voidprint(char*name[],intn);
char
*name[]={"BASIC","FORTRAN","C++","Pascal","COBOL"};intn=5;sort(name,n);print(name,n);}voidsort(char*name[],intn){
char
*tmp;inti,j,k;28例6.15若干字符串按字母順序輸出voidmain(29for(i=0;i<n-1;i++){ k=i; for(j=i+1;j<n;j++) if(strcmp(name[k],name[j])>0)k=j; if(k!=i){tmp=name[i];name[i]=name[k];name[k]=tmp;}}}voidprint(char*name[],intn){inti;for(i=0;i<n;i++)cout<<name[i]<<endl;}BASICCOBOLC++FORTRANPascal例6.15若干字符串按字母順序輸出29for(i=0;i<n-1;i++){BASIC例630例6.15若干字符串按字母順序輸出30例6.15若干字符串按字母順序輸出31間接訪問:利用指針變量訪問另一個變量。單級間址:指針變量中存放目標變量的地址。二級間址:指針變量中存放目標變量地址的地址指向指針的指針31間接訪問:利用指針變量訪問另一個變量。指向指針的指針32有關(guān)指針的數(shù)據(jù)類型的小結(jié)定義含義inti;定義整型變量int*p;p為指向整型數(shù)據(jù)的指針變量inta[N];定義整型數(shù)組a,它有N個元素int*p[N];定義指針數(shù)組p,由N個指向整型數(shù)據(jù)的指針元素組成int(*p)[N];p為指向含N個元素的一維數(shù)組的指針變量intf();f為帶回整型函數(shù)值的函數(shù)int*p();p為帶回一個指針的函數(shù),該指針指向整型數(shù)據(jù)int(*p)();p為指向函數(shù)的指針,該函數(shù)返回一個整型值int**p;p是指向指針的指針變量,指向一個指向整型數(shù)據(jù)的指針變量int(*p)(char*);int*p(char*);p為指向函數(shù)的指針,該函數(shù)以char*為參數(shù),返回int型值有一個char*參數(shù)的函數(shù)p,返回一個到int的指針32有關(guān)指針的數(shù)據(jù)類型的小結(jié)定義含義inti;定義整型變33指針運算小結(jié)(1)指針變量加/減一個整數(shù)例:p++,p--,p+i,p-i,p+=i,p-=i等。將指針變量原值和所指變量內(nèi)存字節(jié)數(shù)相加/減。(2)指針變量賦值p=&a;
//將a的地址賦給pp=array;
//將數(shù)組array地址賦給pp=max;
//將函數(shù)max的入口地址賦給pp1=p2;
//將p2值賦給p133指針運算小結(jié)(1)指針變量加/減一個整數(shù)34(3)指針變量可有空值(空指針)p=NULL;NULListhenull-pointervalueusedwithmanypointeroperationsandfunctions.#defineNULL0指針運算小結(jié)34(3)指針變量可有空值(空指針)指針運算小結(jié)35(4)兩個指針變量相減兩個指針變量指向同一數(shù)組的元素,則兩者值之差是兩個指針間的元素個數(shù)。例,p1指向a[1],p2指向a[4],則p2-p1=(a+4)-(a+1)=4-1=3。兩個指針變量相加無實際意義。指針運算小結(jié)35(4)兩個指針變量相減指針運算小結(jié)一種新的數(shù)據(jù)類型。作用:為變量起一個別名。inta=20;int
&b=a;//聲明b是a的引用intc=a;理解&是引用聲明符,不是取地址運算符。無需另辟內(nèi)存單元。使變量b具有變量a的地址。366.6引用(reference)20變量a變量b20變量c一種新的數(shù)據(jù)類型。366.6引用(reference)20376.6.1引用的定義引用被創(chuàng)建時,必須同時初始化。引用變量始終與代表的變量相聯(lián)系,不能再作為其他變量的引用(別名)。inta=10;int&b=a;intc=a;a=100;b=c;只是賦值操作cout<<a<<b<<c376.6.1引用的定義引用被創(chuàng)建時,必須同時初始化。只是38引用PK
指針1)引用被創(chuàng)建時,必須同時被初始化。(指針無限制)2)一旦引用被初始化為指向一個對象,就不能被改變?yōu)閷α硪粚ο蟮囊?。(指針無限制)3)不能有NULL引用。(指針無限制)38引用PK指針1)引用被創(chuàng)建時,必須同時被初始化396.9.3引用作為函數(shù)參數(shù)為什么需要引用(別名)?用作函數(shù)參數(shù),擴充傳遞數(shù)據(jù)的功能。
函數(shù)參數(shù)傳遞(1)將變量名作為實參和形參值傳送,傳遞變量的值,單向。形參值發(fā)生變化,不回傳給實參。形參與實參代表不同的內(nèi)存單元。396.9.3引用作為函數(shù)參數(shù)為什么需要引用(別名)?40(2)傳遞變量的指針實參是變量的地址,形參是指針變量。調(diào)用函數(shù)時,形參指向?qū)崊⒆兞繂卧??!爸祩魉汀?,傳送“變量的地址”缺點:不夠直接6.9.3引用作為函數(shù)參數(shù)40(2)傳遞變量的指針6.9.3引用作為函數(shù)參數(shù)41例6.19使用指針變量作形參,實現(xiàn)互換voidmain(){voidSwap(int*,int*);inti=3,j=5;Swap(&i,&j);//實參是變量的地址cout<<i<<""<<j<<endl;}voidSwap(int*p1,int*p2){
//形參是指針變量inttemp;temp=*p1;*p1=*p2;*p2=temp;}41例6.19使用指針變量作形參,實現(xiàn)互換voidmai42intmain(){
voidSwap(int&,int&);
inti=3,j=5;Swap(i,j);cout<<"i="<<i<<""<<"j="<<j<<endl;}void
Swap(int&a,int
&b)
{inttemp;temp=a;a=b;b=temp;}i=5j=3例6.20利用“引用形參”實現(xiàn)值互換42intmain(){i=5j=3例6.20利用43ThankYouTheEndofCh.6.
43ThankYouTheEndofCh.6.第06章指針與引用《C++程序設(shè)計基礎(chǔ)教程》課件第06章指針與引用《C++程序設(shè)計基礎(chǔ)教程》課件45第6章指針6.1指針的定義與初始化6.2指針的使用6.3指針與數(shù)組6.4指針與字符串6.5指針與函數(shù)6.6引用6.7應(yīng)用實例2第6章指針6.1指針的定義與初始化466.1指針的定義與初始化36.1指針的定義與初始化47指針:變量的地址。指針變量:專門用來存放另一變量的地址(指針)的變量。理解:一種特殊的變量,用來指向另一變量。其存放內(nèi)容是另一變量的地址。6.1指針的定義與初始化4指針:變量的地址。6.1指針的定義與初始化486.1.1指針的定義一般形式基類型*
指針變量名;int
*p1,*p2;基類型:所指向變量的類型,而非指針本身數(shù)據(jù)值的類型。指針本身類型是unsignedlongint。指針變量名是p1,而不是*p1,即“*”只表示該變量是指針變量。56.1.1指針的定義一般形式496.2指針的使用兩個與指針變量有關(guān)的運算符
(1)&
取地址運算符(2)*
指針運算符(間接訪問運算符)例,&a為變量a的地址,*p為指針變量p所指向的存儲單元。66.2指針的使用兩個與指針變量有關(guān)的運算符50(1)p1=&a;&*p1?&*p1←→&a(2)*&a←→
a。6.2指針的使用*p1←→a7(1)p1=&a;6.2指針的使用*p1←→a51[例6.3]輸入a和b兩個數(shù),按先大后小的順序輸出,a和b的值不變。main(){ inta,b,*p1,*p2,*p; cin>>a>>b;p1=&a;p2=&b; if(a<b) { p=p1;p1=p2;p2=p;} cout<<"a=“<<a<<“,b="<<b; cout<<"Max=“<<*p1<<",Min="<<*p2;}輸出:a=10,b=20Max=20,Min=106.2指針的使用8[例6.3]輸入a和b兩個數(shù),按先大后小的順序輸出,a和指針變量作函數(shù)參數(shù)[例6.4]用函數(shù)實現(xiàn)兩個變量的交換voidSwap(int*p1,int*p2){ int*t; t=p1; p1=p2; p2=t;}main(){ inta=5,b=9;
Swap(&a,&b); cout<<"a="<<a<<",b="<<b;}輸出:a=5,b=9intt;t=*p1; *p1=*p2; *p2=t;Swap(a,b);指針變量作函數(shù)參數(shù)輸出:a=5,b=9intt;Sw536.3.1指針與一維數(shù)組數(shù)組元素的指針:數(shù)組元素的地址。如:inta[5];int*p,*q;p=&a[0];q=&a[2];*p=5;*q=8;a[0]a[1]a[2]a[3]a[4]p↙↙q&a[0]&a[2]58
6.3指針與數(shù)組106.3.1指針與一維數(shù)組a[0]a[1]a[2]a[354規(guī)定:數(shù)組名代表數(shù)組的首地址,即第一個元素a[0]的地址。a≌
&a[0]。若:p=a;
≌
p=&a[0];則:p+1≌&a[1] *(p+1)≌a[1] p+i≌&a[i] *(p+i)≌a[i]p+1指向數(shù)組的下一個元素a[0]a[1]a[2]a[3]a[4]app+1a[i]≌*(a+i)p[i]≌*(p+i)
6.3指針與數(shù)組11規(guī)定:數(shù)組名代表數(shù)組的首地址,即第一個元素a[0]的地址55引用一個數(shù)組元素1)下標法,如a[i];2)指針法,如*(a+i)或*(p+i)。3)
用指針變量指向數(shù)組元素
6.3指針與數(shù)組12引用一個數(shù)組元素6.3指針與數(shù)組56例6.6輸出數(shù)組中的全部元素intmain(){inta[10],i;for(i=0;i<10;i++)cin>>a[i];//引用數(shù)組元素a[i]
for(i=0;i<10;i++)cout<<<<"";}(1)下標法(2)指針法
將a[i]替換成*(a+i)a[i]13例6.6輸出數(shù)組中的全部元素intmain(){57intmain(){inta[10];int*p;for(p=a;p<a+10;p++)cin>>*p;//輸入a[0]~a[9]
for(p=a;p<a+10;p++)cout<<*p<<"";//p先后指向a[0]~a[9]}(3)用指針變量指向數(shù)組元素例6.6輸出數(shù)組中的全部元素14intmain(){(3)用指針變量指向數(shù)組元素58若p指向a[i]),則:(1)*p++作用:先得到*p,即a[i],然后p自加1。
for(p=a;p<a+10;p++)cout<<*p;for(p=a;p<a+10;)cout<<*p++;*++p(2)(*p)++
作用:所指元素加1,即a[i]++注:元素值加1,而非指針值加1。例6.6輸出數(shù)組中的全部元素≌≌*(p++)先p自加1,再*運算,得a[i+1]。15若p指向a[i]),則:例6.6輸出數(shù)組中59intmain(){voidselect_sort(int*p,intn);inta[10],i;for(i=0;i<10;i++)cin>>a[i];select_sort(a,10);//數(shù)組名作實參cout<<"thesortedarray:"<<endl;for(i=0;i<10;i++)cout<<a[i]<<"";}voidselect_sort(int*p,intn){inti,j,k,t;for(i=0;i<n-1;i++){
k=i;for(j=i+1;j<n;j++)if(*(p+j)<*(p+k))k=j;
t=*(p+k);*(p+k)=*(p+i);*(p+i)=t;}}例6.7將10個整數(shù)按由小到大排序6.3.2用指針變量作函數(shù)參數(shù)接收數(shù)組地址16intmain(){voidselect_sor606.3.2指針與二維數(shù)組1.多維數(shù)組元素的地址inta[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};176.3.2指針與二維數(shù)組1.多維數(shù)組元素的地址61a代表首行的起始地址(&a[0]),a+1代表a[1]行的首地址,即&a[1]。a[0],a[1],a[2]是一維數(shù)組名,a[0]代表一維數(shù)組a[0]中0列元素的地址,即&a[0][0]。a[1]的值是&a[1][0],a[2]的值是&a[2][0]。6.3.2指針與二維數(shù)組18a代表首行的起始地址(&a[0]),a+1代表a[1]行62a[0][1]的地址:&a[0][1],a[0]+1。a[0][1]:*(a[0]+1)或*(*(a+0)+1)
。a[i][j]:*(a[i]+j)或*(*(a+i)+j)
。6.3.2指針與二維數(shù)組19a[0][1]的地址:&a[0][1],a[0]+1。663(2)指向一維數(shù)組的指針變量指針的增值以一維數(shù)組的長度為單位。6.3.2指針與二維數(shù)組20(2)指向一維數(shù)組的指針變量6.3.2指針與二維數(shù)組64例6.8輸出二維數(shù)組任一行列元素的值voidmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int(*p)[4],i,j;cin>>i>>j;p=a;cout<<*(*(p+i)+j)<<endl;}21↙1921例6.8輸出二維數(shù)組任一行列元素的值voidmain656.4指針與字符串#include<string>voidmain(){char
str[]="IloveCHINA!";cout<<str<<endl;}1.用字符數(shù)組存放一個字符串例6.9定義一個字符數(shù)組并初始化,然后輸出。string
str="IloveCHINA!";char
*str="IloveCUMT!";226.4指針與字符串#include<string>166例6.10將字符串str1復(fù)制為字符串str2voidmain(){charstr1[]="IloveCHINA!",str2[20],*p1,*p2;
p1=str1;p2=str2;for(;*p1!='\0';p1++,p2++)
*p2=*p1;
*p2='\0';p1=str1;p2=str2;cout<<"str1is:"<<p1<<endl;cout<<"str2is:"<<p2<<endl;}str1is:IloveCHINA!str2is:IloveCHINA!23例6.10將字符串str1復(fù)制為字符串str2void676.5指針與函數(shù)6.5.1用函數(shù)指針變量調(diào)用函數(shù)函數(shù)的指針:函數(shù)的入口地址。intmax(intx,inty){
returnx>y?x:y;}例6.11求a和b中的大者246.5指針與函數(shù)6.5.1用函數(shù)指針變量調(diào)用函數(shù)in68voidmain(){int(*p)(int,int);
//定義指向函數(shù)的指針變量pinta,b,m;p=max;
//p指向函數(shù)maxcin>>a>>b;
m=p(a,b);cout<<"max="<<m<<endl;}例6.11求a和b中的大者25voidmain(){例6.11求a和b中的大者696.5.2指針作為函數(shù)返回值指針函數(shù):返回指針值的函數(shù)。定義指針函數(shù)的一般形式類型名*函數(shù)名(參數(shù)表列);例,
int*a(intx,inty);266.5.2指針作為函數(shù)返回值指針函數(shù):返回指針值的函數(shù)706.7指針數(shù)組和指向指針的指針6.7.1指針數(shù)組的概念指針數(shù)組:元素為指針類型數(shù)據(jù),即每個數(shù)組元素相當于一個指針變量。一維指針數(shù)組的定義形式類型名*數(shù)組名[數(shù)組長度];例,int*p[4];int(*p)[4];276.7指針數(shù)組和指向指針的指針6.7.1指針數(shù)組的概71例6.15若干字符串按字母順序輸出voidmain(){voidsort(char*name[],intn);//函數(shù)聲明voidprint(char*name[],intn);
char
*name[]={"BASIC","FORTRAN","C++","Pascal","COBOL"};intn=5;sort(name,n);print(name,n);}voidsort(char*name[],intn){
char
*tmp;inti,j,k;28例6.15若干字符串按字母順序輸出voidmain(72for(i=0;i<n-1;i++){ k=i; for(j=i+1;j<n;j++) if(strcmp(name[k],name[j])>0)k=j; if(k!=i){tmp=name[i];name[i]=name[k];name[k]=tmp;}}}voidprint(char*name[],intn){inti;for(i=0;i<n;i++)cout<<name[i]<<endl;}BASICCOBOLC++FORTRANPascal例6.15若干字符串按字母順序輸出29for(i=0;i<n-1;i++){BASIC例673例6.15若干字符串按字母順序輸出30例6.15若干字符串按字母順序輸出74間接訪問:利用指針變量訪問另一個變量。單級間址:指針變量中存放目標變量的地址。二級間址:指針變量中存放目標變量地址的地址指向指針的指針31間接訪問:利用指針變量訪問另一個變量。指向指針的指針75有關(guān)指針的數(shù)據(jù)類型的小結(jié)定義含義inti;定義整型變量int*p;p為指向整型數(shù)據(jù)的指針變量inta[N];定義整型數(shù)組a,它有N個元素int*p[N];定義指針數(shù)組p,由N個指向整型數(shù)據(jù)的指針元素組成int(*p)[N];p為指向含N個元素的一維數(shù)組的指針變量intf();f為帶回整型函數(shù)值的函數(shù)int*p();p為帶回一個指針的函數(shù),該指針指向整型數(shù)據(jù)int(*p)();p為指向函數(shù)的指針,該函數(shù)返回一個整型值int**p;p是指向指針的指針變量,指向一個指向整型數(shù)據(jù)的指針變量int(*p)(char*);int*p(char*);p為指向函數(shù)的指針,該函數(shù)以char*為參數(shù),返回int型值有一個char*參數(shù)的函數(shù)p,返回一個到int的指針32有關(guān)指針的數(shù)據(jù)類型的小結(jié)定義含義inti;定義整型變76指針運算小結(jié)(1)指針變量加/減一個整數(shù)例:p++,p--,p+i,p-i,p+=i,p-=i等。將指針變量原值和所指變量內(nèi)存字節(jié)數(shù)相加/減。(2)指針變量賦值p=&a;
//將a的地址賦給pp=array;
//將數(shù)組array地址賦給pp=max;
//將函數(shù)max的入口地址賦給pp1=p2;
//將p2值賦給p133指針運算小結(jié)(1)指針變量加/減一個整數(shù)77(3)指針變量可有空值(空指針)p=NULL;NULListhenull-pointerv
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 氣體傳感器微熱板仿真設(shè)計與MEMS工藝研究
- 基于任務(wù)態(tài)腦電的抑郁癥腦源微狀態(tài)研究
- 特高壓輸電線用同步調(diào)相機暫態(tài)參數(shù)及數(shù)學模型研究
- 關(guān)于性教育中班
- 火鍋店后廚的半年工作總結(jié)模版
- 以色列農(nóng)業(yè)創(chuàng)業(yè)計劃書
- 2025年車站值班員工作總結(jié)模版
- 2025年學校培訓工作總結(jié)模版
- 課題申報書:美術(shù)館博物館的社會功能研究
- 倉儲設(shè)備智能運維行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報告
- 批評與自我批評表
- 醫(yī)院培訓課件:《醫(yī)療安全(不良)事件報告制度》
- 《公共政策學(第二版)》 課件 楊宏山 第1-6章 導論、政策系統(tǒng)-政策執(zhí)行
- 【課件】安全教育 防溺水《不做孤泳者安全伴你我》課件
- 期中模擬練習 (試題)-2023-2024學年五年級下冊數(shù)學北京版
- 教研員培訓課件
- 員工主人翁意識培訓課件
- 支氣管擴張伴咯血的護理查房幻燈片
- DZ∕T 0284-2015 地質(zhì)災(zāi)害排查規(guī)范(正式版)
- DZ∕T 0219-2006 滑坡防治工程設(shè)計與施工技術(shù)規(guī)范(正式版)
- DZ∕T 0017-2023 工程地質(zhì)鉆探規(guī)程(正式版)
評論
0/150
提交評論