一、函数概述
1、函数是用于完成特定任务的程序代码的自包含单元。
2、要进行函数声明,形参改变不会影响实参。
3、用return从函数返回一个值。
二、ANSI C的函数原型:
1、产生的问题
2、ANSI标准的解决方案是在函数声明中同时说明所使用的参数类型,即使用函数原型来声明返回值类型、参数个数以及各参数的类型。
3、函数原型的优点:函数原型是对语言的有力补充。
三、递归:
C允许一个函数调用其本身,这种递归过程被称为递归。递归一般可以代替循环语句使用。
#include<stdio.h>
void up_and_down(int);
int main()
{
up_and_down(1);
return 0;
}
void up_and_down(int n)
{
printf("Leval %d: n location %p\n",n,&n);
if(n < 4)
up_and_down(n+1);
printf("LEVAL %d: n location %p\n",n,&n);
}
1、递归的基本原理:
第一,每一级的函数调用都有自己的变量
第二,每一次函数调用都会有一次返回
第三,递归前的语句执行顺序与各级被调用函数具有相同的执行顺序
第四,递归后的语句执行顺序赫尔各级被调用函数执行顺序相反
第五,函数代码不会得到复制
第六,递归函数中必须包含可以终止递归调用的语句
2、尾递归:最简单的递归形式是把递归调用语句放在函数结尾处即在return之前,这种方式被称为尾递归。
3、递归的优缺点:优点,为某些编程问题提供了最简单的解决方法。缺点,一些递归算法会很快耗尽计算机内存资源,使用递归的程序难于阅读和维护。
四、地址运算符:&
地址:内存区的一个存储单元(字节)的编号
指针:用来存储地址的变量
&用于取得变量的存储地址
五、改变调用函数中的变量
用一个函数改变另一个函数的变量
六、指针简介
创建指针变量前要先声明类型。
间接运算符:*
例:ptr = &bah;
val = *ptr;
等同于:val = bah;