C语言函数名称,c语言函数的声明,调用和定义
库:在开发过程中,每个程序员都可以使用。为了支持可移植性,提高程序效率,C语言basic库提供了一系列类似strcpy(字符串复制函数)的库函数,方便程序员开发。
而学习库函数可以简单看一下:cplusplus官网。
库函数包括:
IO函数:如printf scanf getchar putchar等。
字符串操作函数:如strcmp strlen等。
记忆功能:如memcpy memcmp memset等。
时间/日期功能:如时间等。
数学:如sqrt pow等。
其他功能
这里就不介绍了。
函数中更重要的是自定义函数:
自定义函数:和库函数一样,有函数名,有返回类型,有函数参数,不同的是我们要自己设计。
功能组成如图所示:
例如,函数查找两个数字中的最大值:
int get_max(int x,int y)
int z=0;
如果(x y)
z=x;
其他
z=y;
返回z;//返回多个函数的最大值
int main()
int a=10
int b=20
//函数的调用
int max=get_max(a,b);
printf(%d\n ,max);//打印20
返回0;
}
二、函数的参数和调用
写一个函数来交换两个数的值:
第一种实现方式:
//函数返回类型void,这意味着函数不返回任何值。
void Swap1(int x,int y)
int z=0;
z=x;
x=y;
y=z;
int main()
int a=10
int b=20
//编写一个函数来交换两个整型变量的值
Printf(交换前:a=%d b=%d\n ,a,b);
Swap1(a,b);
Printf(交换后:a=%d b=%d\n ,a,b);
返回0;
}
如图所示的打印不交换两个数字的值:
通过调试,我们可以看到a,b和x,y占用的内存地址是不一样的。交换x和y的值不会影响a和B的值.
所以这段代码达不到想要的效果。
第二个是通过指针实现的。
空Swap2(int* pa,int* pb)
int z=0;
z=* pa
* pa=* pb
* Pb=z;
int main()
int a=10
int b=20
//编写一个函数来交换两个整型变量的值
Printf(交换前:a=%d b=%d\n ,a,b);
Swap2( a,
Printf(交换后:a=%d b=%d\n ,a,b);
返回0;
}
打印成功交换的两个数的值。
实际参数(实参):实际传递给函数的参数称为实参。实际传递给函数的参数叫做实参。参数可以是常量、变量、表达式、函数等。无论实参是什么样的量,在进行函数调用时都必须有一定的值,这样这些值才能传递给形参。
形参(Formal parameters):形参是指函数名后面括号中的变量。它们被称为形参,因为它们只在被调用函数的过程中被实例化(分配内存单元)。当函数调用完成时,参数被自动销毁。因此,形参只在函数中有效。
上面Swap1和Swap2函数中的参数x,y,px,py都是形参。在main函数中,传递给Swap1的a和b以及传递给Swap2的a和b是实际参数。
Swap1函数是按值调用的。当调用它时,实参被传递给形参,形参是实参的临时副本。改变形式参数不会改变实际参数。
Swap2函数属于调用地址。调用时,因为传递了地址,所以形参的指针指向A和B的地址,A和B的值可以通过指针变量直接改变。
按值调用:
函数的形参和实参占用不同的内存块,所以形参的修改不会影响实参,形参是实参的临时副本。改变形式参数不会改变实际参数。
地址呼叫:
逐地址调用是将在函数外部创建的内存地址调用到函数参数的一种方式。
这种传递参数的方式可以在函数和函数外的变量之间建立真正的联系,即函数外的变量可以在函数内直接操作。
3.函数的嵌套调用和链式访问
函数的嵌套调用:
void test2()
printf(呵呵\ n );
int test1()
test2();
返回0;
int main()
test1();
返回0;
//运行函数打印“呵呵”
函数的链式访问:
将一个函数的返回值作为另一个函数的参数。
int main()
int len=strlen( ABC );
printf(%d\n ,len);
//链式访问
printf(%d\n ,strlen( ABC ));
返回0;
}
看看下面的代码。这是一个典型胸部
printf(%d ,printf(%d ,printf(%d ,43));
为什么打印4321?
我们来看看函数printf。
int printf( const char *format [,argument].);
返回值:这些函数中的每一个都返回打印的字符数,如果出现错误,则返回负值。(每个函数返回打印的字符数,如果出现错误,则返回负值。)
四。声誉和功能定义
我前面写的代码没有一个是有名的,只有定义函数和调用函数。因为我写的函数定义可以在主函数之前免于成名。(代码从上到下执行)
功能声誉:
告诉编译器一个函数叫什么,它的参数是什么,它的返回类型是什么,但是否存在无关紧要。
一个功能的声誉一般出现在使用该功能之前,应该满足于先知道该功能再使用。
函数的信誉通常放在头文件中。
函数的定义:函数的定义是指函数的具体实现和交代函数的功能实现。
int main()
int a=10
int b=20
//函数是著名的first-inform
int get_max(int,int);//int get_max(int x,int y);没有什么是不可接受的
//函数的调用
int max=get_max(a,b);
printf(%d\n ,max);//打印20
返回0;
int get_max(int x,int y)
int z=0;
如果(x y)
z=x;
其他
z=y;
返回z;//返回多个函数的最大值
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。