通过函数的调用来交换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]); 是不对的 !在函数中是一个一个传递过去的!
链式访问:把一个函数的返回值作为另一个函数的参数。