欢迎来到天天文库
浏览记录
ID:49497117
大小:282.50 KB
页数:19页
时间:2020-02-26
《面向对象程序设计7,8,9-数组,指针,引用.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第七章数组第八章指针第九章引用权巍面向对象程序设计主要内容1数组2指针3命令行参数4引用1数组数组定义、初始化:如:charaa[9];intbb[]={1,2,3};floatcc[3][5];doubledd[][2]={{1,2},{},{5,6}};数组元素访问向函数传递数组将数据作为参数传递给函数,是把数组的首地址传给函数,因此编程时需传递数组名、数组大小。数组做函数参数,需传递数组、数组长度intsum(int[],int);intmain(){staticintia[5]={2,3,6,8,10};intsumOfArray;sumOfArray=sum(ia,5);cout<
2、<"sumofarray:"<3、错intn=5;p1=&n;int*p2=p1;*p2=100;cout<<“n:”<4、可以将数组名赋给指针inta[3];for(inti=0;i<3;++i)a[i]=i*2;for(int*iP=a;iP5、常量constinta=78;intb=10;intc=18;constint*ip=&a;//const修饰指向的实体类型——常量指针int*constcp=&b;//const修饰指针*cp——指针常量intconst*dp=&b;//等价于上一句——指针常量constint*consticp=&c;//常量指针常量*ip=87;//错:常量指针不能修改指向的常量,*ip只能做右值ip=&c;//ok:常量指针可以修改指针值*cp=81;//ok:指针常量可以修改指向的实体cp=&b;//错:指针常量不能修改指针值,即使是同一个地址*icp=33;//错:常量指针常量不能修改6、指向的常量icp=&b;//错:常量指针常量不能修改指针值intd=*icp;//ok10面向对象程序设计2.4指针做函数参数传递指针(“传址”):指针做参数也是值传递的,传递的是指针变量的值,即其它变量的地址、voidswap(int*b,int*c){inttemp=*b;*b=*c;*c=temp;}intmain(){inti=6,k=5;swap(&i,&k);}//须附带传递数据的个数voidmySort(int*b,intsize);voidf(){inta[]={3,5,7,1,8,4,9};mySort(a,sizeof(a)/sizeof(a[0]));}mySort(i7、nt*b,intsize)与mySort(intb[],intsize)是等价的元素个数传指针2.5函数指针函数类型:函数类型因参数类型、个数和排列顺序的不同而不同,也因返回类型的不同而不同。函数指针:指向代码区中函数体代码的指针。不同的函数类型,其函数指针也不同用法:函数指针经常用作函数参数,以传递连函数本身都不知道的处理过程(函数)intg(inta);int(*gp)(int)=g;voidf();vo
3、错intn=5;p1=&n;int*p2=p1;*p2=100;cout<<“n:”<4、可以将数组名赋给指针inta[3];for(inti=0;i<3;++i)a[i]=i*2;for(int*iP=a;iP5、常量constinta=78;intb=10;intc=18;constint*ip=&a;//const修饰指向的实体类型——常量指针int*constcp=&b;//const修饰指针*cp——指针常量intconst*dp=&b;//等价于上一句——指针常量constint*consticp=&c;//常量指针常量*ip=87;//错:常量指针不能修改指向的常量,*ip只能做右值ip=&c;//ok:常量指针可以修改指针值*cp=81;//ok:指针常量可以修改指向的实体cp=&b;//错:指针常量不能修改指针值,即使是同一个地址*icp=33;//错:常量指针常量不能修改6、指向的常量icp=&b;//错:常量指针常量不能修改指针值intd=*icp;//ok10面向对象程序设计2.4指针做函数参数传递指针(“传址”):指针做参数也是值传递的,传递的是指针变量的值,即其它变量的地址、voidswap(int*b,int*c){inttemp=*b;*b=*c;*c=temp;}intmain(){inti=6,k=5;swap(&i,&k);}//须附带传递数据的个数voidmySort(int*b,intsize);voidf(){inta[]={3,5,7,1,8,4,9};mySort(a,sizeof(a)/sizeof(a[0]));}mySort(i7、nt*b,intsize)与mySort(intb[],intsize)是等价的元素个数传指针2.5函数指针函数类型:函数类型因参数类型、个数和排列顺序的不同而不同,也因返回类型的不同而不同。函数指针:指向代码区中函数体代码的指针。不同的函数类型,其函数指针也不同用法:函数指针经常用作函数参数,以传递连函数本身都不知道的处理过程(函数)intg(inta);int(*gp)(int)=g;voidf();vo
4、可以将数组名赋给指针inta[3];for(inti=0;i<3;++i)a[i]=i*2;for(int*iP=a;iP5、常量constinta=78;intb=10;intc=18;constint*ip=&a;//const修饰指向的实体类型——常量指针int*constcp=&b;//const修饰指针*cp——指针常量intconst*dp=&b;//等价于上一句——指针常量constint*consticp=&c;//常量指针常量*ip=87;//错:常量指针不能修改指向的常量,*ip只能做右值ip=&c;//ok:常量指针可以修改指针值*cp=81;//ok:指针常量可以修改指向的实体cp=&b;//错:指针常量不能修改指针值,即使是同一个地址*icp=33;//错:常量指针常量不能修改6、指向的常量icp=&b;//错:常量指针常量不能修改指针值intd=*icp;//ok10面向对象程序设计2.4指针做函数参数传递指针(“传址”):指针做参数也是值传递的,传递的是指针变量的值,即其它变量的地址、voidswap(int*b,int*c){inttemp=*b;*b=*c;*c=temp;}intmain(){inti=6,k=5;swap(&i,&k);}//须附带传递数据的个数voidmySort(int*b,intsize);voidf(){inta[]={3,5,7,1,8,4,9};mySort(a,sizeof(a)/sizeof(a[0]));}mySort(i7、nt*b,intsize)与mySort(intb[],intsize)是等价的元素个数传指针2.5函数指针函数类型:函数类型因参数类型、个数和排列顺序的不同而不同,也因返回类型的不同而不同。函数指针:指向代码区中函数体代码的指针。不同的函数类型,其函数指针也不同用法:函数指针经常用作函数参数,以传递连函数本身都不知道的处理过程(函数)intg(inta);int(*gp)(int)=g;voidf();vo
5、常量constinta=78;intb=10;intc=18;constint*ip=&a;//const修饰指向的实体类型——常量指针int*constcp=&b;//const修饰指针*cp——指针常量intconst*dp=&b;//等价于上一句——指针常量constint*consticp=&c;//常量指针常量*ip=87;//错:常量指针不能修改指向的常量,*ip只能做右值ip=&c;//ok:常量指针可以修改指针值*cp=81;//ok:指针常量可以修改指向的实体cp=&b;//错:指针常量不能修改指针值,即使是同一个地址*icp=33;//错:常量指针常量不能修改
6、指向的常量icp=&b;//错:常量指针常量不能修改指针值intd=*icp;//ok10面向对象程序设计2.4指针做函数参数传递指针(“传址”):指针做参数也是值传递的,传递的是指针变量的值,即其它变量的地址、voidswap(int*b,int*c){inttemp=*b;*b=*c;*c=temp;}intmain(){inti=6,k=5;swap(&i,&k);}//须附带传递数据的个数voidmySort(int*b,intsize);voidf(){inta[]={3,5,7,1,8,4,9};mySort(a,sizeof(a)/sizeof(a[0]));}mySort(i
7、nt*b,intsize)与mySort(intb[],intsize)是等价的元素个数传指针2.5函数指针函数类型:函数类型因参数类型、个数和排列顺序的不同而不同,也因返回类型的不同而不同。函数指针:指向代码区中函数体代码的指针。不同的函数类型,其函数指针也不同用法:函数指针经常用作函数参数,以传递连函数本身都不知道的处理过程(函数)intg(inta);int(*gp)(int)=g;voidf();vo
此文档下载收益归作者所有