c语言中怎么调用函数?谢谢

发布网友 发布时间:2022-04-20 15:42

我来回答

13个回答

热心网友 时间:2022-04-18 16:46

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中较大的一个数

}

函数实参

函数作为另一个函数调用的实际参数出现。这种情况是把该函数的返回值作为实参进行传送,因此要求该函数必须是有返回值的。例如: printf("%d",max(x,y)); 即是把max调用的返回值又作为printf函数的实参来使用的。在函数调用中还应该注意的一个问题是求值顺序的问题。

所谓求值顺序是指对实参表中各量是自左至右使用呢,还是自右至左使用。对此,各系统的规定不一定相同。介绍printf 函数时已提到过,这里从函数调用的角度再强调一下。

以上内容参考:百度百科-函数调用

热心网友 时间:2022-04-18 18:04

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-18 19:39

函数分为库函数和自定义函数,在调用库函数时只要标明头文件(所谓头文件就是一个东西,里面包括了一些函数各声明之类的,当你要调用它中的函数时就就得先向程序说明你要调用这个文件里的函数,否则有有侵权行为哦)可以在主调函数中调用这个头文件里的所有函数了,例如头文件为#include<stdio.h>你就可以在主调函数中调用这个头文件里的函数:
main
{ printf("haha");/*这时main函数为主调函数,printf为被调函数*/
}
调用自定义函数时其实和调用库函数一样的,只不过这个函数是你自己定义的,再如:
main
{ void f();/*声明 f()函数*/
f(); /*调用f()函数*/
}
f()
{
printf("haha");/*f()函数调用库函数*/
}

热心网友 时间:2022-04-18 21:30

跟调用库函数一样,只不过这个自定义函数得你自己写,
如果自定义函数在main()函数之后定义的话,,就得在main()前先声明,main()中调用,main()后定义,如下简易代码:
#include<stdio.h>

void print(); //用户自定义函数声明

void main()
{

print(); //用户自定义函数调用

}

void print() //用户自定义函数定义
{
printf("函数已经被调用\n");
}
如果自定义函数在main()之前已定义,则只需要进行main()前定义,和main()中调用了,简单代码如下:
#include<stdio.h>

void print() //用户自定义函数定义
{
printf("函数已经被调用\n");
}
void main()
{

print(); //用户自定义函数调用

}

热心网友 时间:2022-04-18 23:38

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中较大的一个数
}

热心网友 时间:2022-04-19 02:03

给你个例子:

#include<stdio.h>
//写好加法,以便调用
int sum(int x1,int x2)
{
int x3=x1+x2;
return x3;
}
void main()
{
int a=0;
int b=0;
int c=0;
printf("请输入两个整数\n");
scanf("%d%d",&a,&b);
c=sum(a,b);//传递参数给sum()函数,返回他们的和
printf("%d+%d的和是:%d\n",a,b,c);
}

总之:就是你把一种方法写到单独的块,这里就是sum()函数,执行一个单一的功能,在main函数调用就是了!

热心网友 时间:2022-04-19 04:44

你的代码错了很多,第一点,
split函数
应该是void
因为你直接对数组的地址进行了操作!
第二点,你的
main函数

for循环

没有考虑到数组有些
数组元素
的值是不可预知的,
第三点,你的数组应该有结束符号'\0'。

热心网友 时间:2022-04-19 07:42

#include<stdio.h>
int main()
{
int max4(int a,int b,int c,int d);        //函数声明,在函数调用前
int a,b,c,d,max;
printf("please enter 4 number:\n");
scanf("%d,%d,%d,%d,%d",&a,&b,&c,&d);
max=max4(a,b,c,d);
printf("the max number is:\n%d\n",max);
return 0;
}
int max4(int a,int b,int c,int d)  //自定义函数,通过主函数调用
{
int max2(int a,int b);   //对max2的函数声明
int m;
m=max2(a,b);
m=max2(m,c);
m=max2(m,d);
return(m);
}
int max2(int a,int b)
{                                
if(a>=b)
return a;
else
return b;
}

 首先进入主函数,输入a,b,c,d四个值,然后调用函数max4,进入函数max4,又调用了max2函数,第一个m=max2(a,b),从max2的代码中很容易看出这是一个求两者最大的函数,将a,b之中最大的返回给m,m就是a,b之中的最大值.第二个m=max2(m,c),同上,求出m和c之间的最大值给m,第三个m=max3(m,d);,和第二个作用一样。然后返回m的值给主函数,主函数的max接收了m的值,然后输出,程序结束。整个程序的功能是输入四个值,输出出最大值。

热心网友 时间:2022-04-19 10:57

#include<stdio.h>
int main()
{
int max2(int a,int b);
int max4(int a,int b,int c,int d);//这里叫做函数声明,就是说,如果你在这段代码中要用到这个函数就得先在前面声明,当然如果你把函数体写在主函数前面就可以省略词句,一般的较大的程序会将函数单独写,然后在主函数里要声明,
int a,b,c,d,max;//定义5个整形变量
printf("please enter 4 number:\n");//提示输入4个整数
scanf("%d,%d,%d,%d,%d",&a,&b,&c,&d);//输入4个整数(你输入了5个),这句有点毛病,就是你在输入4个整数时中间必须用英文逗号隔开,一般我们这样写scanf("%d%d%d%d",&a,&b,&c,&d);中间用空格分开
max=max4(a,b,c,d);//调用max4函数,将abcd中最大的数返回并赋值给max
printf("the max number is:\n%d\n",max);//输出最大数
return 0;
}
int max4(int a,int b,int c,int d)  //这是函数具体的实现代码,这句是函数名,它和前面的声明不同之处就是没后面的分号,大括号内为函数代码,这个函数的作用是从4个数中选出最大的数,
{
int max2(int a,int b);
int m;
m=max2(a,b);
m=max2(m,c);
m=max2(m,d);
return(m);
}
int max2(int a,int b)//这是从两个中选出最大的数
{                                
if(a>=b)
return a;
else
return b;
}

#include<stdio.h>//简化代码如下
int max2(int a,int b)
{                                
return a>b? a:b;
}
int max4(int a,int b,int c,int d)
{
    int m;
    m=max2(a,b);
    m=max2(m,c);
    m=max2(m,d);
    return(m);
}
int main(void)
{
    int a,b,c,d,max;
    printf("please enter 4 number:\n");
    scanf("%d%d%d%d",&a,&b,&c,&d);
    max=max4(a,b,c,d);
    printf("the max number is: %d\n",max);
    return 0;
}

希望可以帮到你。

热心网友 时间:2022-04-19 14:28

其实当调用函数的时候,系统会将调用函数的地址压栈,然后转到被调用函数执行,等子函数执行完了再将堆栈中的地址弹出来,这样就继续执行调用函数后面的语句了。

热心网友 时间:2022-04-19 22:37

修改后可以运行的程序:
#include <stdio.h>
#include<conio.h>
int sum(int x,int y)
{ int z;
z=x+y;
printf("z=%d",z);
return z;
}
void main()
{ int a,b,s;
printf("Input a and b:");
scanf("%d,%d",&a,&b);
s=sum(a,b);
getch();
}
改正的错误:
1.printf("z=%d",z);无%d,则不能输出z值
2.scanf("%d",&a); &表示输入到a
3.用到getch();时需加头文件#include<conio.h>
4.无返回值函数需加void

热心网友 时间:2022-04-20 03:15

首先函数调用要声明函数(如果是库函数,可以直接调用,当然了,是要包含相应的头文件),
然后在需要调用的地方把函数名copy下,加上相应的参数,最后别完了加上“;”就ok了!

热心网友 时间:2022-04-20 08:10

定义函数
返回类型 函数名 (形参){函数体;}
比如
int big(int i1, inti2){
if (i1>i2)
return i1;
else
return i2;
}

调用的话 就是
big( 1 ,2 );
表达式big( 1 ,2 ) 得到的其实就是 2

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com