24小时热门版块排行榜    

查看: 441  |  回复: 1

yalefield

金虫 (文坛精英)

老汉一枚

[交流] [老汉原疮咯咯体] 用函数参数传递变量的一个简单规则咯 已有1人参与

C/C++的函数,返回值只能有一个咯。
不知道其他语言的函数有没有能多个返回值的咯。
返回一个结构体,算不算返回多个值咯?当然不算咯。

有人想通过抬杠来增长自己的学问咯,简称“抬杠涨学问”咯。
为审么用“涨”学问而不用“长”学问咯?
那时因为含水量很高咯。咯咯。

烟鬼正传咯。

如果要函数带回来参数的新值,那就在声明时,设一层指针咯。
例如:
CODE:
void foo(int * pa);

而函数的实现就是:
CODE:
void foo(int * pa)
{
      *pa = 3;
}

void father()
{
      int a = 0;
      foo(&a);
}

也就是说,把*pa看做一个整体,那就是int (*pa),因此就可以给它一个整数咯。
为审么说一层指针咯?
嗯,如果人家本来就是个指针,还要通过函数参数带回新的变化,那就再加一个*:
CODE:
void foo(FILE ** fa);
void foo(FILE **fa)
{
      (*fa) = fopen("...", "rt");
}

void father()
{
      FILE * fa = NULL;
      foo(&fa);
}

也就是说,把*fa看做一个整体,那就是(*fa)的类型就是FILE *,因此就可以给它一个fopen的返回值咯。

咯咯。
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Ldelong_hit

银虫 (正式写手)

明白了~
学无止境
2楼2011-07-01 10:58:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yalefield 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见