当前位置:   article > 正文

c语言初阶之函数_c语言函数可以改变调用参数的值吗

c语言函数可以改变调用参数的值吗

1.函数是什么?

2.函数的分类 库函数 要求有会掌握一些库函数的模拟实现,及查询库函数的功能和头文件的能力

                      自定义函数 要求会根据题目要求自己自定义一些函数

从本案例中可以看出,传值调用并不能改变实参的值,而传址调用是可以改变实参的值。

 3.函数的实参和形参:形参是实参临时拷贝 

具体有关实参和形参在空间中的开辟,详情请见后续博客推出的函数栈帧相关的内容。

4.函数的传值调用和传址调用:传值调用并不能改变实参的值,而传址调用是可以改变实参的值。

相关练习:

习题1:

 

习题2:

习题3:

习题4:

5.函数的嵌套调用和链式访问

函数可以互相调用,也即是嵌套调用。

但是函数不能嵌套定义。

 

 函数的链式访问

strlen函数的返回值做printf函数的参数,像这样就叫做函数的链式访问。

相关习题讲解:

 在讲解之前,要注意一点,printf函数的返回值是打印字符的个数。

最里层的printf函数打印出43,返回值为2,作为第二个printf函数的参数。

第二个printf函数打印出2,返回值1,作为第一个printf函数的参数。

第一个printf函数再打印出1。 

6.函数的声明和定义

 

函数的声明:

1. 告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,函数
声明决定不了。
2. 函数的声明一般出现在函数的使用之前。要满足 先声明后使用
3. 函数的声明一般要放在头文件中的

函数的定义:

指函数的具体实现,交待函数的功能实现。

7.函数递归和迭代(非递归)

存在递归的两个条件:1.存在条件限制,满足限制条件,就不再发生递归 2.条件变量会发生改变,每次调用递归时会越来越接近限制条件

//习题

1.//接受一个整型值(无符号),按照顺序打印它的每一位。
//例如:
//输入:1234,输出 1 2 3 4

2.//编写函数不允许创建临时变量,求字符串的长度。

 

3.//n的阶乘。(不考虑溢出)

递归实现:

 迭代实现:

 

4.//求第n个斐波那契数。(不考虑溢出)

递归实现:

 迭代实现:

 

5. // 汉诺塔问题
规则、思路及规律
使用递归实现

 

 

6. // 青蛙跳台阶问题

思路一:找规律

一阶台阶方法一种

两阶台阶方法两种

三阶台阶方法三种

四阶台阶方法五种

五阶台阶方法八种

六阶台阶方法十三种

类似于斐波那契数列

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/算法构造者2/article/detail/63085
推荐阅读
相关标签
  

闽ICP备14008679号