回顾
Lecture 2主要讲了哪些内容?
- if-else语句
- switch语句
- for循环语句
- while循环语句(包括do-while语句)
HDOJ上的题目完成了么?
函数
C语言上的函数这章教程不好,我们抽取重点讲解。
这里有个教程可以供我们参考:
C函数-菜鸟教程
函数的好处:
- 把大的任务分解为若干个小的任务
- 避免重复代码编写
- 程序结构更加清晰,降低程序难度
函数定义
我们以max函数来说明函数的定义:
/* 函数返回两个数中较大的那个数 */
int max(int num1, int num2)
{
/* 局部变量声明 */
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
一般的函数定义如下:
return_type function_name( parameter list )
{
body of the function
}
函数声明
int max(int num1, int num2);
一般的函数声明:
return_type function_name( parameter list );
函数调用
#include <stdio.h>
/* 函数声明 */
int max(int num1, int num2);
int main ()
{
/* 局部变量定义 */
int a = 100;
int b = 200;
int ret;
/* 调用函数来获取最大值 */
ret = max(a, b);
printf( "Max value is : %d\n", ret );
return 0;
}
/* 函数返回两个数中较大的那个数 */
int max(int num1, int num2)
{
/* 局部变量声明 */
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
从这个例子里面我们需要说明参数(形参、实参)和返回值的作用。
作用域规则
这部分我们也参考菜鸟教程
递归
我们以数的阶乘例子来说明递归:
#include <stdio.h>
int factorial(unsigned int i)
{
if(i <= 1)
{
return 1;
}
return i * factorial(i - 1);
}
int main()
{
int i = 15;
printf("Factorial of %d is %d\n", i, factorial(i));
return 0;
}
C预处理器
文件包含
#include <filename>
#include "filename"
宏定义
#define 被替换的名字 替换的值
举个例子:
#define PI 3.1415926