- 练习
编写函数不允许创建临时变量,求字符串长度。
此程序arr要进行传参的时候,只是将字符串第一位的地址传给了str。同时str是一个指针变量所以此时str里存的就是w的地址。函数此时要求字符串长度首先创建一个计数器,并创建循环的条件是指针不能指到\0。每走一次指针和计数器就会+1,指针走即地址也会往后移动一位。只要到\0就会停止。但题目要求不能使用临时变量该怎么办
如果发现第一个字符不是\0的话就剥离一个出来变成1+my_strlen(elcome),如果还不是继续1+1my_strlen(lcome)以此类推当my_strlen里的str经过不断循环剥离里面就已经没有东西了,之后就可以看成是return 1+1+1+1+1+1+1
二、递归与迭代
编写一个求n的阶层(不考虑溢出)
循环写法
流程图
原理图
原理图2
实际参数(实参) :
真实传给函数的参数,叫实参。实参可以是︰常量、变量、表达式、函数等。无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。
形式参数(形参):
形式参数是指函数名后括号中的变量,因为形式参数只有在函数被调用的过程中才实例化(分配内存单元),所以叫形式参数。形式参数当函数调用完成之后就自动销毁了。因此形式参数只在函数中有效。
函数的调用:传值调用
函数的形参和实参分别占有不同内存块,对形参的修改不会影响实参。
传址调用
·传址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式。
这种传参方式可以让函数和函数外边的变量建立起正真的联系,也就是函数内部可以直接操作函数外部的变量。