C Language -- Lecture 3

回顾

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 
 
/* 函数声明 */
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; 
}

从这个例子里面我们需要说明参数(形参、实参)和返回值的作用。

作用域规则

这部分我们也参考菜鸟教程

递归

C Language -- Lecture 3_第1张图片
视觉上的一种递归

我们以数的阶乘例子来说明递归:

#include 

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 

#include "filename"

宏定义

#define 被替换的名字 替换的值

举个例子:

#define PI 3.1415926

你可能感兴趣的:(C Language -- Lecture 3)