1、函数的意义
大概也就是模块化程序设计吧....
在面向过程是一种以过程为中心的编程思想,首先将复杂的问题分解为一个个容易解决的问题,分解过后的问题可以按照步骤一步步完成,每一步都使用一个独立的函数来实现,函数是面向过程在C语言中的体现。
2、函数的声明和定义
函数的声明和定义是不一样的,函数声明只是预先告诉编译器有这么一个东西存在,只是还没有具体定义;而函数定义是具体的函数功能的实现;例如:
// global.c
//int g_var = 0;
#include <stdio.h>
extern int g_var;
//外部声明
void f(int i, int j);
//函数声明
int main()
{
int g(int x);//局部函数声明
g_var = 10;
f(1, 2);
printf("%d\n", g(3));
return 0;
}
//函数定义
void f(int i, int j)
{
g(1);
//编译时会提示使用了隐性声明的函数,因为函数g是在main函数体中声明的
printf("i + j = %d\n", i + j);
}
//函数定义
int g(int x)
{
return 2 * x + g_var;
}
3、函数参数
函数参数在本质上与局部变量相同,都是在栈上分配空间;函数参数的初始值是函数调用时的实参值;
看一个示例1:
#include <stdio.h>
int f(int i, int j)
{
printf("%d, %d\n", i, j);
}
int main()
{
int k = 1;
f(k, k++);
printf("%d\n", k);
return 0;
}
输出的结果会是什么呢?
可能会觉得输出是1,1,2,或者其他答案,但是运行程序却输出了: