700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C语言 自定义函数要注意些什么? – 网络

C语言 自定义函数要注意些什么? – 网络

时间:2022-03-12 19:16:49

相关推荐

C语言 自定义函数要注意些什么? – 网络

一、值传递和址传递的C程序代码

为了说清“值传递”和“址传递”之间的区别,大家先看一段C程序代码,如下:

上述C程序代码非常简单:在C程序的main函数中定义了两个整型变量para1与para2,初始值分别是1和2;还有一个指针变量pInt,初始值是变量para2的地址。

在C程序的main函数中,先调用了自定义函数ValueTrans,并且把变量para1作为参数。在自定义函数ValueTrans中,将变量para1重新赋值为11。在调用完函数ValueTrans后输出变量para1的值,看看是多少;

在C程序的main函数中,再次调用了自定义函数AddrTrans,并且把指针pInt作为参数。在自定义函数AddrTrans中,将指针pInt指向的值重新赋值为22。在调用完函数AddrTrans后输出变量para2的值,看看是多少;

现在大家看看这段C程序的运行结果:

惊不惊喜?意不意外?

二、值传递和址传递的解释

现在大家来解释下上述C程序代码为何是这么个运行结果。

1、值传递

上述C程序代码调用函数ValueTrans,把变量para1作为参数,注意就是把变量para1的值1作为参数。

在具体执行函数ValueTrans时,系统自己默默地、悄悄地在某一个地方新建了一个也叫作para1的整型变量。这个整型变量para1可不是C程序代码main函数中的那个para1.大家可以把main函数中的para1变量看做是main_para1,把函数ValueTrans中的para1看做是ValueTrans_para1.那么在函数ValueTrans中其实是把11赋值给了变量ValueTrans_para1,至于变量main_para1嘛,纹丝不动!

所以在C程序main函数中,最后变量para1的值还是1.

2、址传递

上述C程序代码调用函数AddrTrans,把指针pInt作为参数,注意此时就是把变量para2的地址作为参数,这就有意思啦!

在具体执行函数AddrTrans时,系统自己同样地、悄悄地在某一个地方新建了一个也叫作pInt的指针变量。但是这个指针变量pInt的值就是main函数中的那个pInt的值.换句话说,两个指针变量pInt同时指向了C程序中main函数的变量para2。那么在函数AddrTrans中把22赋值给了指针pInt指向的值,其实也就改变了main函数中的变量para2的值,太神奇了!这就是C语言指针的魅力所在!

所以在C程序main函数中,最后变量para2的值就变成了22.

上述是C语言编程中自定义函数时要注意的一个地方。你明白了吗?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。