c语言函数看不懂。求大神改变我函数观,可以把函数当成什么来使用
求会c语言的大神说说函数是怎么样的,比喻比喻过程,把函数看做什么。这几天买了本C语言书,看着看着就看到函数那里去了,关键是我不了解函数,不知道它有什么用,别人老说一本书多...
求会c语言的大神说说函数是怎么样的,比喻比喻过程,把函数看做什么。这几天买了本C语言书,看着看着就看到函数那里去了,关键是我不了解函数,不知道它有什么用,别人老说一本书多看几遍就会。可我不这么觉得。就拿现在,函数看不懂要我继续看下去。铁定浪费时间.。。所以真心求啊啊啊!!!
展开
7个回答
展开全部
函数是一段代码,这段代码完成相对单一的功能,比如求最大值函数,排序函数,交换函数等。
函数由返回值(也称作函数类型)、函数名、参数表和代码块组成。
较为纠结的是参数表,参数表中所有的成员都被称作形参,参数表可能是“空”的,也可能是常规变量,也可能是指针,还有数组等等,简单的来说,常规变量就是该函数中的局部变量,是通过“传值”方式将主调函数中的值传过来的,改变这些值是不会影响主调函数中实参的值的,而指针和数组就不同了,这样的参数是以“传址”方式传过来的,如果改变指针指向的内容,就会改变实参的内容。
下面结合具体函数再做些说明。
求最大值函数
int max(int x, int y) { // 函数参数是普通变量,“传值”方式
return (x > y) ? x : y;
}
交换函数
void swap(int *x, int *y) { // 参数是指针,“传址”方式
int t = *x;
*x = *y;
*y = t;
}
交换函数
void sort(int arr[], int n) { // int arr[]还可以写作int *arr,二者无区别
int i,j,k,t;
for(i = 0; i < n -1; ++i) {
k = i;
for(j = i + 1; j < n; ++j) {
if(arr[k] < arr[j])
k = j;
}
if(k != i) {
t = a[k];
a[k] = a[i];
a[i] = t;
}
}
}
展开全部
函数,可以看做是一个盒子,有输入端,有输出端
输入端,就是参数
输出端,就是返回值
他会把输入的参数经过处理,返回一个值
你可以知道是怎么处理的(叫白盒),也可以不知道怎么处理的(叫黑盒)
他有相当于一个加工厂,拿来原来,经过加工,生产出成品
举例,如求素数
参数是一个数,要求是说出是否是素数
那么返回值就是0 1,0表示非素数,1表示素数
输入端,就是参数
输出端,就是返回值
他会把输入的参数经过处理,返回一个值
你可以知道是怎么处理的(叫白盒),也可以不知道怎么处理的(叫黑盒)
他有相当于一个加工厂,拿来原来,经过加工,生产出成品
举例,如求素数
参数是一个数,要求是说出是否是素数
那么返回值就是0 1,0表示非素数,1表示素数
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-02-14
展开全部
函数是程序中独立完成某一特定功能的小程序段。一个函数可被主程序或其他函数调用,它要有一个类型的返回值,要有函数名,在函数名中有参数(往往这个参数是由主程序传递过来的,在函数中要加以运算的)。
举个简单的例子:
#include <stdio.h>
int max(a,b) /*函数max作用返回传递参数中较大的一个数值*/
{
int max;
if(a>b)
max=a;
else
max=b;
return max; /*返回max变量的值给主程序中调用函数的语句*/
}
int main(void)
{
int a,b,c;
scanf("a=%d,b=%d\n",&a,&b);
c=max(a,b); /*调用比较两个数大小的函数max,并将函数的返回值赋值给c*/
printf("max=%d",c);
}
举个简单的例子:
#include <stdio.h>
int max(a,b) /*函数max作用返回传递参数中较大的一个数值*/
{
int max;
if(a>b)
max=a;
else
max=b;
return max; /*返回max变量的值给主程序中调用函数的语句*/
}
int main(void)
{
int a,b,c;
scanf("a=%d,b=%d\n",&a,&b);
c=max(a,b); /*调用比较两个数大小的函数max,并将函数的返回值赋值给c*/
printf("max=%d",c);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
函数就是子程序,有特定功能的程序块,例如求和函数,它就是求和功能,你并不需要是怎么实现求和的,你只要知道怎么用就行,不用管他的过程
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在设计程序时,有时需要做许多重复的事,这些重复的事每次都由若干语句完成,比如说数组排序。
那么,我们就可以将这些重复的语句提出来形成子程序,在每次重复的地方调用这个子程序,这样就可以简化程序、减少代码量,你的子程序编得好,其他场合甚至其他编程者都可以拿来调用。
如果子程序包含一些调用参数、有特定的返回值,比如用查表法求某角度的正弦函数值,我们就称这样的子程序叫函数。这与数学中的函数类似,比如y=2*x+a,等式左边的y就是返回值,右边的x和a就是参数。
可以将函数看成黑匣子,送入参数,就会得到结果。如果不考虑输入输出参数是必须的话,函数就是一段可反复调用的程序。
举例来说,你程序中反复要进行华氏温度转成摄氏温度的运算,所以就有必要编个转换的函数,输入要转换的华氏温度值,返回转换成的相应摄氏温度值。
c语言提供许多标准函数供编程者直接调用,比如printf函数、sin函数、scanf函数等。你已经在用函数了,比如必不可少的main函数。
那么,我们就可以将这些重复的语句提出来形成子程序,在每次重复的地方调用这个子程序,这样就可以简化程序、减少代码量,你的子程序编得好,其他场合甚至其他编程者都可以拿来调用。
如果子程序包含一些调用参数、有特定的返回值,比如用查表法求某角度的正弦函数值,我们就称这样的子程序叫函数。这与数学中的函数类似,比如y=2*x+a,等式左边的y就是返回值,右边的x和a就是参数。
可以将函数看成黑匣子,送入参数,就会得到结果。如果不考虑输入输出参数是必须的话,函数就是一段可反复调用的程序。
举例来说,你程序中反复要进行华氏温度转成摄氏温度的运算,所以就有必要编个转换的函数,输入要转换的华氏温度值,返回转换成的相应摄氏温度值。
c语言提供许多标准函数供编程者直接调用,比如printf函数、sin函数、scanf函数等。你已经在用函数了,比如必不可少的main函数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询