C语言中函数使用的注意事项有哪些

发布时间:2022-03-18 15:38:52 作者:iii
来源:亿速云 阅读:264

本文小编为大家详细介绍“C语言中函数使用的注意事项有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言中函数使用的注意事项有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

我们都可以将其理解为一个有输入输出的「功能黑箱」,看下图:

C语言中函数使用的注意事项有哪些

就类似给函数一个 x 值,可以求结果一样,给函数一些输入参数,也可以得到相同的输出结果。

1. 模块化编程

为什么要使用函数呢?其实是为了更好的维护软件的功能以及实现模块化编程。

你可以想下如果把所有的功能都写在 main 函数中,那该多么可怕,估计没人会读你写的代码。

通过使用函数可以使我们的软件逻辑性更强,单独的功能写在单独的函数中,还可以方便后期复用等等,好处还有很多实在列举不完。

其中比较重要的作用要说:模块化编程代码复用了,建议你去找实际的项目看看代码组成,自然就理解了。

2. 函数的副本机制

很多初学者都搞不清楚函数的副本机制,例如下面的交换函数:

C语言中函数使用的注意事项有哪些

这个函数是错误的,因为函数在进行参数传递的时候,会将传入参数 m,n 的值拷贝给函数的形式参数 a,b。

因此在函数内部交换的是形式参数 a,b 的值,而不是交换传递时 m,n 变量的值。

函数的副本机制从内存的角度来说就是:在函数进行参数传递的时候,实参和形参的内存地址是不同的

这是这个例子的输出结果,每个人的机器可能都不同:

C语言中函数使用的注意事项有哪些

可以看到变量 m 和 a,以及 n 和 b 的内存地址均不同,因此对值的交换也是不起作用的。

但是使用指针就完全不同了,看下面这个例子:

C语言中函数使用的注意事项有哪些

这个函数才是正确的交换函数,为什么呢?

因为我们这里传递的是 m,n 的内存地址,即传递的是指针,所以在函数内部对指针解除引用就可以直接访问这个地址的内容了,这是指针提供的特性。

那么是否就意为着传递指针就没有副本机制了呢?这也是错误的,指针也是变量,本质上与 int 没有区别,只是特性不同罢了。

上面例子在传递指针的时候,也是将 m,n 的地址拷贝给 pa,和 pb,也是存在副本机制的。

只不过这里拷贝的是地址而不是值,在内部通过指针的解引用操作可以直接访问 m,n 的内存地址,进而进行交换。

因为指针非常重要,所以建议你自己运行这个程序,可以看到输出结果中 pa 指向的是 m 的内存地址,而 &pa 是指针变量 pa 的内存地址,这两个千万不要搞混了。

一定时时刻刻记住下面的结论:

1. 一个 int 变量有自己的内存地址,也有自己存储的整数值

2. 一个指针变量有自己的内存地址,也有自己存储的指向地址值

3. 变量在内存中都有自己的地址和其存储的内容

3. 函数的参数传递顺序

VC 和 gcc 编译器计算函数参数的顺序都是从右向左,这个特点一点要记住,面试可能会问到。

你可以使用下面这个程序去验证,程序比较简单,留作给你的思考(不去思考就等于浪费时间看 cd 这篇文章了):

C语言中函数使用的注意事项有哪些

读到这里,这篇“C语言中函数使用的注意事项有哪些”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. 使用SQL聚合函数与排序的注意事项有哪些
  2. 使用JS函数的注意事项有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c语言

上一篇:php的错误处理函数怎么用

下一篇:R语言的pairs函数怎么使用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》