当前位置: 首页 > news >正文

深圳品牌营销网站建设/seo研究

深圳品牌营销网站建设,seo研究,wordpress 新窗口打开,供需平台类网站建设C 值传递、指针传递、引用传递值传递: 形参是实参的拷贝,改变形参的值并不会影响外部实参的值。从被调用函数的角度来说,值传递是单向的(实参->形参),参数的值只能传入, 不能传出。当函数内…

C++ 值传递、指针传递、引用传递

值传递:

形参是实参的拷贝,改变形参的值并不会影响外部实参的值。从被调用函数的角度来说,值传递是单向的(实参->形参),参数的值只能传入,

不能传出。当函数内部需要修改参数,并且不希望这个改变影响调用者时,采用值传递。

指针传递:

形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作

引用传递:

形参相当于是实参的“别名”,对形参的操作其实就是对实参的操作,在引用传递过程中,被调函数的形式参数虽然也作为局部变量在栈

中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过

栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做的任何操作都影响了主调函数中的实参变量。

#include<iostream> 
using namespace std;  
//值传递   
void change1(int n){      
cout<<"值传递--函数操作地址"<<&n<<endl;         
//显示的是拷贝的地址而不是源地址       
n++; 
} 
//引用传递void change2(int & n){cout<<"引用传递--函数操作地址"<<&n<<endl; n++;
}
//指针传递
void change3(int *n){cout<<"指针传递--函数操作地址 "<<n<<endl; *n=*n+1;
}
int main(){int n=10;cout<<"实参的地址"<<&n<<endl;change1(n);cout<<"after change1() n="<<n<<endl;change2(n);cout<<"after change2() n="<<n<<endl;change3(&n);cout<<"after change3() n="<<n<<endl;return true;
}

在这里插入图片描述

可以看出,实参的地址为0x22ff44

采用值传递的时候,函数操作的地址是0x22ff20并不是实参本身,所以对它进行操作并不能改变实参的值

再看引用传递,操作地址就是实参地址 ,只是相当于实参的一个别名,对它的操作就是对实参的操作

接下来是指针传递,也可发现操作地址是实参地址

那么,引用传递和指针传递有什么区别吗?

引用的规则:
(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。

(2)不能有NULL引用,引用必须与合法的存储单元关联(指针则可以是NULL)。
(3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。

指针传递的实质:

指针传递参数本质上是值传递的方式,它所传递的是一个地址值。值传递过程中,被调函数的形式参数作为被调函数的局部变量处理,

即在栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本。值传递的特点是被调函数对形式参数的

任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值。(这里是在说实参指针本身的地址值不会变)如果理解不了大可跳过这段

指针传递和引用传递一般适用于:

函数内部修改参数并且希望改动影响调用者。对比指针/引用传递可以将改变由形参“传给”实参(实际上就是直接在实参的内存上修改,

不像值传递将实参的值拷贝到另外的内存地址中才修改)。

另外一种用法是:当一个函数实际需要返回多个值,而只能显式返回一个值时,可以将另外需要返回的变量以指针/引用传递

给函数,这样在函数内部修改并且返回后,调用可以拿到被修改过后的变量,也相当于一个隐式的返回值传递吧。

http://www.lbrq.cn/news/1617211.html

相关文章:

  • 国外交友网站怎么做/企业网站营销实现方式解读
  • 辽宁大学网站怎么做/东莞seo技术培训
  • 沧州网站建设多少钱/百度竞价代运营
  • 通信公司网站建设/网站首页面设计
  • 专业建设报告/seo发包排名软件
  • php动态网站开发代码/做网站用什么软件
  • 网站建设 天秀网络/友情链接交换网
  • 郴州制作网站设计较好的公司/成都seo工程师
  • 政务网站建设的重要性/网络销售怎么聊客户
  • 地方房产网站APP如何做/百度电话人工服务
  • 网站开发的技术简介/网络营销的应用
  • 做网站电话沧州/简述网站建设的一般流程
  • 网站开发 移民/网易企业邮箱
  • 英文网站群建设/外链查询工具
  • 做b2b网站价格/网站建设与管理属于什么专业
  • magento怎么做b2b网站/seo自学网官网
  • 南京建设监理协会网站/it培训学校
  • wordpress启用特色/商品标题seo是什么意思
  • 如何做网站的源码/南昌seo搜索优化
  • 青岛模板网站建设价格/设计网站模板
  • 安徽 网站制作/企业管理培训公司排行榜
  • 淮南哪里做网站/长沙正规竞价优化推荐
  • 商城网站开发需求/网推怎么做
  • 企业主页设计/网站快速优化排名排名
  • 06628 网页制作与网站开发/什么是网络销售
  • web网站是什么意思/湖南网站优化
  • 西宁做网站的公司/如何联系百度平台客服
  • 网站建设长春/专门做排行榜的软件
  • 飞沐网站建设公司北京/最新搜索关键词
  • 佛山建企业网站/网站友链交换平台
  • [创业之路-528]:技术成熟度曲线如何指导创业与投资?
  • 什么是三防平板电脑?三防平板有什么作用?
  • spring boot 启动报错---java: 无法访问org.springframework.boot.SpringApplication 错误的类文件
  • 安装 docker compose v2版 笔记250731
  • 法式基因音响品牌SK(SINGKING AUDIO)如何以硬核科技重塑专业音频版图
  • 【Django】-1- 开发项目搭建