发布网友 发布时间:2022-04-20 15:42
共14个回答
热心网友 时间:2022-04-10 01:17
C语言中,函数调用的一般形式为:
函数名(实际参数表)
对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、变量或其它构造类型数据及表达式。各实参之间用逗号分隔。
#include<stdio.h>
int fun(int x, int y); // 函数声明,如果函数写在被调用处之前,可以不用声明
void main()
{
int a=1, b=2, c;
c = fun(a, b); // 函数的调用,调用自定义函数fun,其中a,b为实际参数,传递给被调用函数的输入值
}
// 自定义函数fun
int fun(int x, int y) // 函数首部
{ // {}中的语言为函数体
return x>y ? x : y; // 返回x和y中较大的一个数
}
C语言中不允许作嵌套的函数定义。因此各函数之间是平行的,不存在上一级函数和下一级函数的问题。但是C语言允许在一个函数的定义中出现对另一个函数的调用。
这样就出现了函数的嵌套调用。即在被调函数中又调用其它函数。这与其它语言的子程序嵌套的情形是类似的。其关系可表示如图。
图表示了两层嵌套的情形。其执行过程是:执行main函数中调用a函数的语句时,即转去执行a函数,在a函数中调用b 函数时,又转去执行b函数,b函数执行完毕返回a函数的断点继续执行,a函数执行完毕返回main函数的断点继续执行。
参考资料:函数调用_百度百科
热心网友 时间:2022-04-10 02:35
C语言调用函数就是先定义并声明函数,之后再根据定义函数的格式调用。
下面举例来说明函数调用方法:
#include<stdio.h>热心网友 时间:2022-04-10 04:09
付费内容限时免费查看回答您稍等一下哦,马上就好,感谢您的等待
Copyright © 1999-2020, CSDN.NET, All Rights Reserved

 登录

塔塔君Minkun
关注
c语言中怎么调用自己定义的函数,c语言中怎么调用自己定义的函数? 转载
2021-05-24 21:19:26
 1点赞

塔塔君Minkun 
码龄4年
关注
一,函数调用的一般形式为:
函数名(实参列表);
实参可以是常数、变量、表达式等,多个实参用逗号,分隔。
在C语言中,函数调用的方式有多种,例如:
在函数调用中还应该注意的一个问题是求值顺序的问题。所谓求值顺序是指对实参列表中各个参数是自左向右使用呢,还是自右向左使用。对此,各系统的规定不一定相同。
【示例】在VC6.0下运行以下代码。
运行结果:
8 7 6 7
可见VC 6.0是按照从右至左的顺序求值。如果按照从左至右求值,结果应为:
9 10 9 8
函数的嵌套调用
函数不能嵌套定义,但可以嵌套调用,也就是在一个函数的定义中出现对另一个函数的调用。这样就出现了函数的嵌套调用,即在被调函数中又调用其它函数。
【示例】计算sum = 1! + 2! + 3! + ... + (n-1)! + n!
分析:可以编写两个函数,一个用来计算阶乘,一个用来计算累加的和。
#include
//求阶乘
long factorial(int n){
int i;
long result=1;
for(i=1; i<=n; i++){
result *= n;
}
return result;
}
// 求累加的和
long sum(long n){
int i;
long result = 0;
for(i=1; i<=n; i++){
//嵌套调用
result += factorial(n);
}
return result;
}
int main(){
printf("1!+2!+...+9!+10! = %ld\n", sum(10));
return 0;
}
二,有些自定义函数可能会被频繁的调用,所以写在一个C文件里是不太方便的。应该把这些自定义的函数写在一个C文件里,同时在一个头文件.h文件里声明。主函数可以通过引用该头文件然后调用需要的自定义函数。
1,举例:在
热心网友 时间:2022-04-10 06:01
#include <stdio.h>
int sum(int x,int y) //声明一个sum函数
{ int z;
z=x+y; //z,x,y在这里就是形式参数,
return z; //z是形式参数,输出的应该是实际参数s,而非z
}
main()
{
int a,b,s; //a,b,s就是实际参数
scanf("%d,%d",&a,&b); //输入时不要忘记 取地址符&
s=sum(a,b);
printf("s=%d",s); /*putchar的功能是向屏幕输出一个字符。其调用格式为putchar(ch);ch为输出项,可以使字符型的常量、变量或表达式*/
return 0;
}
我在您的源程序基础上做了一定修改,并在关键位置给予了注释。如果对您有帮助,请采纳我的回答
热心网友 时间:2022-04-10 08:09
少一个头函数,住函数没有返回值,应该用void。
#include <stdio.h>
#include<conio.h>
int sum(int x,int y)
{ int z;
z=x+y;
printf("z=",z);
return z;
}
void main()
{
int a,b,s;
scanf("%d,%d",a,b);
s=sum(a,b);
getch();
}
热心网友 时间:2022-04-10 10:33
我这编译器上你这程序是过不去的,编译就错误,去掉getch();就行,顺便我也来参考学习一下函数更贴近实际应用一点的意义,想想我将来学会了c语言,就能在单片机虚拟机玩嵌入式开发了,不过是要掌握一些io口之类的知识,几年前我学过忘了就差想要的图像采集没学会了,然后我又重新学一遍,感觉有更多的知识有把握去掌握,未来我计划单片机学凑合就去学arm开发,也可以基于c语言,而且运算能力高,最大扩展内存好大的啊,不过是要掌握arm的一些指令集和io口之类的知识估计,反正能省就省走一步看一步吧。
热心网友 时间:2022-04-10 13:15
C语言中,函数调用的一般形式为:
函数名(实际参数表)
对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、变量或其它构造类型数据及表达式。各实参之间用逗号分隔。
热心网友 时间:2022-04-10 16:29
#include
<stdio.h>
#include<math.h>
float
jis(float);
main()
{
float
a,b,c;
float
y1,y2,y3;
printf("Enter
x:
a=
\n");
scanf("%f",&a);
y1=jis(2);
printf("y1=%f",y1);
b=a+15;
y2=jis(b);
printf("y2=%f",y2);
c=sin(a);
y3=jis(c);
printf("y3=%f",y3);
getch();
}
float
jis(float
x)
{
float
y;
y=x*x-5*x+4;
return
y;
}
这样就对了,对了一般不需要用double,float的精度已经够了!还有用数学函数sinx时一定要加上头文件#include<math.h>
希望对你有所帮助!
热心网友 时间:2022-04-10 20:01
static
静态变量
因为它定义在函数中,所以是局部静态变量。局部静态变量,在函数返回后存储单元不释放;下一次调用该函数时,该变量为上次函数返回时的值。
热心网友 时间:2022-04-10 23:49
建议你把不用的变量不要用,例如那个s,你也没用到什么,还有你的结果在sum函数中显示了,为什么还要用到return z这个呢,我有点不明白;.
热心网友 时间:2022-04-11 03:53
你这个编译是成功的.
在函数体内的是实参或是说参加运算的为实参.
形参就是在函数体外的.
热心网友 时间:2022-04-11 08:15
#include <stdio.h>
int sum(int x,int y)
{ int z;
z=x+y;
printf("z=%d",z);
return z;
}
void main()
{ int a,b,s;
scanf("%d%d",&a,&b);
s=sum(a,b);
getch();
}
热心网友 时间:2022-04-11 12:53
你把最后那个getch()改为printf("%d",s)看能行不
热心网友 时间:2022-04-11 17:47
静态变量么
保留上一次的值