传值调用:
创新互联公司是网站建设技术企业,为成都企业提供专业的网站设计、网站制作,网站设计,网站制作,网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制适合企业的网站。10余年品质,值得信赖![ 适用于外部函数返回数值给主函数,但不通过外部函数改变主函数变量的值]
如:输出了两个数的大值,代码如下图。
分析:MAX函数输出大值返回给主函数,主函数执行printf语句直接打印,并没有通过MAX函数改变主函数的变量,只是返回了一个数值给主函数,所以适用于传值调用的方法。
传址调用:
[适用于外部函数直接改变主函数变量的数值]
如:将a、b两个变量的数值交换,代码如下图。
分析:swap函数直接通过变量a、b的地址对主函数的变量a、b的数值进行控制并交换。以实现通过外部函数swap改变主函数的变量,所以适用于传址调用的方法。
为什么会存在传址调用呢?
当需要通过外部函数改变主函数的变量时,如:面对问题“将a、b两个变量的数值交换”时。若使用传值调用,代码如下图。
以上代码工作原理:相当于将变量a、b的数值拷贝一份,然后外部函数的变量pa、pb开辟出内存来接收拷贝出来的a、b数值,然后外部函数将拷贝得来的数值进行交换,然而外部函数的变量pa、pb与主函数的变量a、b没有任何关联,所以主函数的a、b数值并没有得到交换。代码运行结果如下。
可以看出a、b数值并没有得到交换。
若使用传址调用的方法解决a、b数值交换问题时,代码如下图。
以上代码工作原理:通过地址,使外部函数变量pa、pb与主函数变量a、b建立关系,实现外部函数改变主函数的变量。主函数将变量a、b的地址传入外部函数变量pa、pb中,外部函数通过地址找到主函数变量a、b的位置并直接对主函数变量a、b的值进行交换。代码运行结果如下。
可以看到使用传址调用的方式成功使a、b的数值得到交换。
总的来说:判断何时使用传值调用,何时使用传址调用时,关键要看是否需要使用外部函数对主函数的变量进行操作。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧