c语言函数调用常见问题,c语言程序中,当调用函数时

C语言调用函数问题

有两种情况,第一种:在大部分情况下都是要用到多少个参数就定义多少个.请看例子:

创新互联是专业的珠海网站建设公司,珠海接单;提供成都网站建设、做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行珠海网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

#include stdio.h

void weekdays(int y,int m, int d)//根据日期利用基姆拉尔森公式判定是星期几

//看参数:一共三个,主程序中调用时,也必须用三个参数

{

int iWeek;

if(m==1||m==2) {

m+=12;

y--;

}

iWeek=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;//基姆拉尔森公式

switch(iWeek)//判定星期几

{

case 0: printf("星期一\n"); break;

case 1: printf("星期二\n"); break;

case 2: printf("星期三\n"); break;

case 3: printf("星期四\n"); break;

case 4: printf("星期五\n"); break;

case 5: printf("星期六\n"); break;

case 6: printf("星期日\n"); break;

}

int  main()

{

int year=0,month=0,day=13;   

printf("请输入日期:\n格式为:1900,1,1\n");   

scanf("%d%d%d",year,month,day);//输入年,月,日

weekdays(year,month,day);   //运算

return 0;

}

第二种:不定参数这个有点复杂,还是建议你自行度娘了.这种情况,函数头定义参数个数可以比主函数实际调用时少.

C语言中函数调用的问题?

关于c语言中函数调用问题解答如下:

首先如果是编译的这个代码那这个函数肯定被调用了,让你觉得没有调用是因为while循环没有被执行。

图中红色框内代码p1和p2经过赋值p1是肯定大于p2所以不满足while.的条件直接退出了函数。

你需要看看要实现啥在改一下。

C语言中函数调用问题

如果一个函数要使用参数,它就必须定义接受参数值的变量。

形式参数与实际参数

函数定义时填入的参数我们称之为形式参数,简称形参,它们同函数内部的局部变量作用相同。形参的定义是在函数名之后和函数开始的花括号之前。

调用时填入的参数,我们称之为实际参数,简称实参。

必须确认所定义的形参与调用函数的实际参数类型一致,同时还要保证在调用时形参与实参的个数出现的次序也要一一对应。如果不一致,将产生意料不到的结果。与许多其它高级语言不同,(是健壮的,它总要做一些甚至你不希望的事情,几乎没有运行时错误检查,完

全没有范围检测。作为程序员,必须小心行事以保证不发生错误,安全运行。

赋值调用与引用调用

一般说来,有两种方法可以把参数传递给函数。第一种叫做“赋值调用”(call

by

value),这种方法是把参数的值复制到函数的形式参数中。这样,函数中的形式参数的任何变化不会影响到调用时所使用的变量。

把参数传递给函数的第二种方法是“引用调用”(call

by

reference)。这种方法是把参数的地址复制给形式参数,在函数中,这个地址用来访问调用中所使用的实际参数。这意味着,形式参数的变化会影响调用时所使用的那个变量

C语言函数调用的问题

传值的函数实参是一定不会被改变的,放心的当作真理记得就行了

通过传值方式的函数,在被调用的函数内都为形参分配了自己的内存空间,所有的操作结果都不会被带出作用域

c语言函数调用问题

int 和 void 的区别:

int 返回值,void 不返回值。当需要返回值给主函数时,用int;当不需要返回值给主函数时,用void。

至于括号里的内容:

int n是接收主函数的实参作为形参,就是函数中要用到这个形参。如果不需要从主函数中接收实参,那么就用void。

至于返回值:

当函数返回值给主函数时,主函数需要调用函数并赋值给某一个变量。

例如:

函数int fun() 返回值:return (a);

主函数调用函数fun()

p=fun(int n);

这时,p就接收了函数返回的a的值。

printf("%d",a);

就可以将a的值显示在屏幕上。

C语言调用函数的问题

你写的程序,函数调用前,数组元素初始化为 全 0。

函数调用时,函数内 有循环 语句,执行:

vals[i] = 1;

把所有元素 赋新值为 1。所以输出 1。

----

应修改:

void findMax(int vals[],int *m) // 返回m要用指针

{

int i;

*m = vals[0];

printf("findMax输出结果:\n");

for (i = 0; i MAXELS; i++)

{

if (vals[i] *m) *m = vals[i];

printf("vals[%d] = %d\n", i, vals[i]);

}

printf("m = %d\n", *m);

}

函数调用:

findMax(nums, value);

函数原型声明:

void findMax(int vals[],int *m) ;


分享标题:c语言函数调用常见问题,c语言程序中,当调用函数时
转载来于:http://cdiso.cn/article/hdidge.html

其他资讯