C语言学习笔记(三)
1.函数
内容:介绍编写函数的方法和调用方法。
目的:学会编写简单函数和使用。
重难点:函数的递归调用和多个函数的嵌套调用,分清形参和实参。
1.函数
1.定义函数要定义类型和内容。
2.数组可以作为函数参数。
3.函数的返回值是通过return语句获得的。
4.调用函数前要先声明。
5.内部函数和外部函数。
内部函数:只能被本文件中其他函数调用
定义方法:static类型名 函数名(形参表)
外部函数:在定义函数时在函数首部最左端加extern
例如:extern int fun(int a,int b)
2.参数
1.形参:再定义函数时函数名后括号里的称为形参。
2.实参:在调用函数时后括号里的称为实参。
3.形参可以和实参之间完成数据传递。
3.变量
1.局部变量:只在本函数里有效,本函数外不能使用
2.全局变量:可以被其他函数共用。
典型函数递归调用解决复杂问题
举例:青蛙跳台阶问题(蓝点工作室第3题)递归法
#include <stdio.h>
int D_jump_floor(int n)
{
if (n <= 2)
{
return n;
}
else
{
return D_jump_floor(n - 2) + D_jump_floor(n - 1);
}
}
int main()
{
int n = 0;
printf("请输入跳的台阶数:");
scanf("%d", &n);
int ret1 = D_jump_floor(n);
printf("%d\n", ret1);
system("pause");
return 0;
}
分析,发现呈现
f(n)=(n-1)+f(n-2)
所以定义一个函数,实现
在主函数中调用
优点:比常规方法快
2.指针
1.指针同样是一个变量,只不过该变量中存储的是另一个对象的内存地址。
2.如果一个变量存储另一个对象的地址,则称该变量指向这个对象。
3.指针变量可以赋值,指针的指向在程序执行中可以改变,
(指针P在执行中某时刻指向变量X,在另一时刻也可以指向变量Y
注意
1.指针变量的命名规则和其他变量的命名规则一样。
2.指针不能与现有变量重名。
3.指针可存放C语言中的任何基本数据类型,数组和其他所有高级数据结构的地址。
4.若指针已声明为指向某种类型数据的地址,则它不能用于存储其他类型数据的地址。
5.应为指针指定一个地址后,才能在语句中使用指针。