为了账号安全,请及时绑定邮箱和手机立即绑定

怎样理解形参

形参只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量,怎样理解?


还有图片中return x*2又是什么意思

正在回答

4 回答

//除了void函数
void fun();
void 函数名();
//不一定要用到return 返回计算结果
//其他
float fun();
double sun();
int swap();
.....
//都要用到return返回计算结果。
//好比之前给你讲的,函数里的临时变量(形参)最终会被释放清空;
//当然你总不会希望你在里面做了一堆的计算,最终得到的结果被计算机释放清空了对吧
//所以你希望这个值保留下来;
//return的作用就好比临死前把这个值丢出去,然后有另外一个变量去把它捡起来给自己


0 回复 有任何疑惑可以回复我~
//关于return x * 2;
//你可以理解成
printf("x=%d\n", x*2);


1 回复 有任何疑惑可以回复我~
#1

慕勒5238369 提问者

#include<stdio.h> int Matrix (int n) { int i,j; for(i=1;i<=n;i++) { for(j=1;j<=n;j++0) { printf("*"); } pringtf("\n"); } return 0; } int main() { Matrix(5); return 0; } 这里面 n是形参,5是实参吗
2018-02-26 回复 有任何疑惑可以回复我~
#2

慕勒5238369 提问者

return那里还是不是很懂。。。
2018-02-26 回复 有任何疑惑可以回复我~
#3

蛋包饭_0 回复 慕勒5238369 提问者

是的。 n是形参,5是实参
2018-02-26 回复 有任何疑惑可以回复我~
//以下内容以你提供的代码为例子
//原文:形参只有在被调用时才分配内存单元
//解释:你可以理解成当你调用"int MultiDouble(int x)"函数时,计算机开始int(定义)x(如果你了解过C语言与
//      内存的关系,这时候就相当于临时开辟一个(sizeof(int))大小的空间,准备储存x的值
//原文:在调用结束时,即刻释放所分配的内存单元。
//解释:你可以想象如果这时候临时开辟的x的空间永远不释放(分配的内存单元),当你的代码无穷大时,在你
//      内存条容量有限大的情况下,你的内存一定会爆掉的。所以C语言为了避免出现这样的情况,就做出这样的
//      决定:在调用结束时,即刻释放所分配的内存单元,为了你的内存不爆掉
//结论:(既然x的内存空间都被释放掉了)所以,形参只有在函数内部有效,主调函数后则不能再使用该形参变量X


1 回复 有任何疑惑可以回复我~

形参即只是一个参数本身没有任何意义,只有在函数调用时赋值才有实际意义此时变成实参。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926210    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

怎样理解形参

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信