2023/6/23 函数的学习

文章探讨了在编程中如何通过函数调用来改变实参的值,指出传值调用不能直接影响实参,而传址调用可以通过地址实现这一目标。讨论了寻找素数和判断闰年的算法,并强调了数组在函数调用中传递首元素地址的特点以及链式函数调用的概念。
摘要由CSDN通过智能技术生成

通过函数的调用来交换ab的值,形参的修改无法改变真的实参,

所以这时候引出指针的方法用地址来改变实参的值

这种只是改变了形参的地址但是实参对应的数值还是那个 

 

 疑问什么时候传递地址?什么时候传递值?

!!★★:修改形参的值无法真正的影响到实参的数值,所以这时候就想办法用地址来改变实参,用地址真正的把形参和实参联系起来,用地址来改变实参的值,(传值调用)

所以说如果想要真正改变实参的值时候传递地址,不需要改变实参 只需要调用实参来相加等等的运算这时候只需要传递数值过去!(传址调用)


实参可以的类型:常量,变量,表达式,函数等 (无论实参是任何形式,实参必须要有具体的类型以便于实参的值传递给形参)

求100~200以内的素数

引入一个标志来判断是不是素数 如果flag是1就是素数是0就不是参数

并且必须要用i%j==0而不能用i%j!=0

优化算法

 

 


判断一年是否为闰年

 代码是有问题的 2000 1600都没有

原因是这个else 在进行完上面的if 不符合条件后就不进行下面的if 了

但是满足上面的任意条件即可 所以用两个if   每一个if 都执行一遍

用函数的调用返回值结合if(1)or if(0);来判断 

 


 

 

为什么在函数调用的时候用的是 search【arr,k,sz】

而在函数的定义 的时候用的是search(arr[ ] , int k , int sz)

因为数组占用的空间太大了所以在函数调用时候传递的时候只是传递了第一个数组的地址!!!!

arr  啥也不带的是指的是arr【0】首元素的地址。

所以说数组传参传递的是首元素的的地址!

在函数中用sz=sizeof(arr)/sizeof(arr[0]); 是不对的 !在函数中是一个一个传递过去的!


链式访问:把一个函数的返回值作为另一个函数的参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值