| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 588 人关注过本帖
标题:输入型参数,输出形参数?
只看楼主 加入收藏
多久变大神
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-4-6
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:8 
输入型参数,输出形参数?
输入型参数为已知,由main函数传至函数中;输出型参数未知,需要由函数得出,由函数传至main
#include<stdio.h>
#define PI 3.1415926
main()
{
int r;
float s;
float Yuan(int);
scanf("%d",&r);
s=Yuan(r);
printf("%f",s);
return 0;
}
float Yuan(int r)
{float s;
s=PI*r*r;
return s;
}
以这个为例,函数中的r为输入型参数,s为输出型参数?是否自定义函数里涉及到的参数()中的参数?——才有这两类的说法?
听说输出型参数是得地址传送?是说输出型参数一定得用指针吗?
如果需要用到指针,那么上面该怎样改呢?
搜索更多相关主题的帖子: include return 
2015-04-07 21:04
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:10 
程序代码:
#include<stdio.h>
#define PI 3.1415926

float Yuan(int *);
int main(void) {
    int r;
    scanf("%d", &r);
    printf("%f\n", Yuan(&r));
    return 0;
}

float Yuan(int *r) {
    float s;
    s = PI * *r * *r;
    return s;
}

Only the Code Tells the Truth             K.I.S.S
2015-04-07 22:11
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
程序代码:
/* 如果你的编译器 支持c99标准 还可以这样做 */
#include<stdio.h>

#define PI 3.1415926
#define R 3

float Yuan(int *r) {
    return PI * *r * *r;
}

int main(void) {
    printf("%f\n", Yuan((int[]){R}));
    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2015-04-07 22:15
kin3z
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:157
专家分:390
注 册:2011-4-24
收藏
得分:5 
回复 楼主 多久变大神
主函数的实参,输入到被调用函数里则叫型参,它们是区分开的。
可以理解为实参还保留在主函数那里,只是它的值交给了被调用函数去,赋给了型参。
让型参用那个值去运算,最终该返回值的返回值,该结束的结束,所以函数与函数之间是隔离的,不能访问彼此所声明的变量。(一般而言)

至于指针是可以的,传的是实参的地址值,直接对存放的位置作修改。可以理解为直接得到被调用函数直接得到实参的地址,利用地址去修改实参的值。
2015-04-08 00:36
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 楼主 多久变大神
很多基本的知识,需要长篇大论,哎~

授人以渔,不授人以鱼。
2015-04-08 12:01
Vsnow
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:124
专家分:145
注 册:2015-1-3
收藏
得分:0 
这类问题,最好自己先看书或者百度,再上机实践尝试,实在不行了,在求助。这样的话,对于别人给的答案理解得更好
2015-04-08 12:08
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
输入型和输出型参数,不是仅指指针的,是指参数的作用。当参数的用途是用于输入时,就叫输入型参数;当参数的用途是用于输出时,就叫输出型参数。比如楼主的程序,通过输入半径求周长或面积,半径在函数中的作用,仅用于输入,所以那是输入型参数。函数获取的结果,是周长或面积,那么输出其实有两种形式,返回值或由输出型参数返回,前者直接return s就可以了;后者,则需使用诸如fun(double, r, double* s)的形式,形参s是指针,用于输出结果。所谓地址型参数,在C++中,有指针和引用两种,指针式如前,引用式的是foo(double r, dluble& s)。

有些参数,本身同时承担输入和输出的任务,则是输入输出型参数。在文件IO类函数中,FILE* fp就是最典型的输入输出型参数,它既用于输入,又因在函数中操作文件后反馈文件指示器的更改,它是有输出的。

授人以渔,不授人以鱼。
2015-04-08 13:42
多久变大神
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-4-6
收藏
得分:0 
回复 2楼 longwu9t
谢谢!不过第二个超出了目前的范围,我还是暂时采用第一种吧。
2015-04-08 22:00
多久变大神
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-4-6
收藏
得分:0 
回复 5楼 TonyDeng
恩!会尽量这样的
2015-04-08 22:01
快速回复:输入型参数,输出形参数?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030273 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved