欢迎来到天天文库
浏览记录
ID:36334456
大小:376.81 KB
页数:32页
时间:2019-05-09
《━━指针与函数、指针与堆内存》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C++程序设计第4章(3)━━指针与函数、指针与堆内存1主要内容指针作为函数参数指针作为函数返回值指向函数的指针C++的四个内存区域动态存储分配堆内存new与delete运算符动态存储分配的几点说明使用new和delete的几点说明常指针指向常量的指针类型标识符的定义2指针作为函数参数作用:指针作为函数参数,可以使主调函数与被调函数之间共享变量或对象,以实现函数之间数据的双向传递。地址传递:①若某函数的一个形参定义为指针类型,则调用该函数时其对应的实参可以是:◆相同类型的变量(或对象)的地址◆相同类型的指针变量◆相同类型的数组名②由
2、于实参是一个地址,将该地址传递给了对应的形参指针变量,此时形参指针变量与实参指针指向的是同一个内存区域的变量(或对象),因此若在被调函数中修改了形参指针变量所指向的数据,也就修改了主调函数中实参指针所指向的数据。3【例】(值传递、引用传递、地址传递━━函数的参数三种传递方式的比较)#includevoidswap1(intp1,intp2){inttemp=p1;p1=p2;p2=temp;}voidswap2(int&p1,int&p2){inttemp=p1;p1=p2;p2=temp;}voidswap
3、3(int*p1,int*p2){inttemp=*p1;*p1=*p2;*p2=temp;}voidswap4(int*p1,int*p2){int*temp=p1;p1=p2;p2=temp;}voidmain(){inta=3,b=6;cout<<“a=”<4、5、h>voidsort1(int*p,intn)//对p指针所指向的n个元素的数组按升序排序{inti,j,t;for(i=0;i*(p+j)){t=*(p+i);*(p+i)=*(p+j);*(p+j)=t;}}voidsort2(int*p,intn)//对p指针所指向的n个元素的数组按升序排序{inti,j,t;for(i=0;ip[j]){t=p[i];p[6、i]=p[j];p[j]=t;}}voidsort3(intp[],intn)//对n个元素的p数组按升序排序{inti,j,t;for(i=0;ip[j]){t=p[i];p[i]=p[j];p[j]=t;}}5voidmain(){inta[6]={43,81,32,11,63,10};intb[6]={43,81,32,11,63,10};intc[6]={43,81,32,11,63,10};intd[6]={43,81,32,11,63,17、0};inti;sort1(a,6);for(i=0;i<6;i++)cout<8、11011324363811011324363816【例】(设计通用的两矩阵相乘的函数)分析:a为m×n矩阵,b为n×p矩阵,a乘以b得到c矩阵,则c为m×p的矩阵。k=n-1矩阵相乘公式:cij=∑aik×bkjk=0#includ
4、5、h>voidsort1(int*p,intn)//对p指针所指向的n个元素的数组按升序排序{inti,j,t;for(i=0;i*(p+j)){t=*(p+i);*(p+i)=*(p+j);*(p+j)=t;}}voidsort2(int*p,intn)//对p指针所指向的n个元素的数组按升序排序{inti,j,t;for(i=0;ip[j]){t=p[i];p[6、i]=p[j];p[j]=t;}}voidsort3(intp[],intn)//对n个元素的p数组按升序排序{inti,j,t;for(i=0;ip[j]){t=p[i];p[i]=p[j];p[j]=t;}}5voidmain(){inta[6]={43,81,32,11,63,10};intb[6]={43,81,32,11,63,10};intc[6]={43,81,32,11,63,10};intd[6]={43,81,32,11,63,17、0};inti;sort1(a,6);for(i=0;i<6;i++)cout<8、11011324363811011324363816【例】(设计通用的两矩阵相乘的函数)分析:a为m×n矩阵,b为n×p矩阵,a乘以b得到c矩阵,则c为m×p的矩阵。k=n-1矩阵相乘公式:cij=∑aik×bkjk=0#includ
5、h>voidsort1(int*p,intn)//对p指针所指向的n个元素的数组按升序排序{inti,j,t;for(i=0;i*(p+j)){t=*(p+i);*(p+i)=*(p+j);*(p+j)=t;}}voidsort2(int*p,intn)//对p指针所指向的n个元素的数组按升序排序{inti,j,t;for(i=0;ip[j]){t=p[i];p[
6、i]=p[j];p[j]=t;}}voidsort3(intp[],intn)//对n个元素的p数组按升序排序{inti,j,t;for(i=0;ip[j]){t=p[i];p[i]=p[j];p[j]=t;}}5voidmain(){inta[6]={43,81,32,11,63,10};intb[6]={43,81,32,11,63,10};intc[6]={43,81,32,11,63,10};intd[6]={43,81,32,11,63,1
7、0};inti;sort1(a,6);for(i=0;i<6;i++)cout<8、11011324363811011324363816【例】(设计通用的两矩阵相乘的函数)分析:a为m×n矩阵,b为n×p矩阵,a乘以b得到c矩阵,则c为m×p的矩阵。k=n-1矩阵相乘公式:cij=∑aik×bkjk=0#includ
8、11011324363811011324363816【例】(设计通用的两矩阵相乘的函数)分析:a为m×n矩阵,b为n×p矩阵,a乘以b得到c矩阵,则c为m×p的矩阵。k=n-1矩阵相乘公式:cij=∑aik×bkjk=0#includ
此文档下载收益归作者所有