这个作业属于哪个班级 | C语言--网络2011/2012 |
---|---|
这个作业的地址 | C博客作业03--函数 |
这个作业的目标 | 学习如何设计函数、C语言基本数据类型 |
姓名 | 黄抒鸿 |
0.展示PTA总分
1.本章学习总结
1.1 函数定义、调用、声明
1.1.1 函数定义
一般形式:
返回值类型 函数名 (参数列表)/*函数首部*/
{
函数实现过程;/*函数体*/
}
·函数定义时给出的参数称为形式参数,简称形参;函数调用时给出的参数(也就是传递的数据)称为实际参数,简称实参。
·函数调用时,将实参的值传递给形参,相当于一次赋值操作。
·参数列表里每一个参数都要声明参数类型和名称,参数和参数之间用逗号隔开。
1.1.2 函数调用
一般形式:
函数名(实际参数表)
·通过在程序中使用函数名称,可以执行函数中包含的语句,这称为调用函数
·函数之间允许相互调用,也允许嵌套调用
·函数还可以自己调用自己,即递归调用
1.1.3 函数声明
·函数声明给出了函数名、返回值类型、参数列表(重点是参数类型)等与该函数有关的信息,称为函数原型。
·函数原型的作用是告诉编译器与该函数有关的信息,让编译器知道函数的存在,以及存在的形式,即使函数暂时没有定义,编译器也知道如何使用它。
·函数声明说明在形式上与函数头部类似,最后加一个分号。
·函数声明说明中参数表里的参数名可以不写,只写参数类型。
#include<stdio.h>
float count (int,int);//函数声明
int main()
{
...
...
}
float count(int x,int y)//函数定义
{
...
...
}
1.2 全局、局部变量、静态局部变量
定义变量3种情况:
(1)在函数的开头定义(局部变量)
(2)在函数内的复合语句内定义(局部变量)
(3)在函数的外部定义(全局变量)
局部变量:
float f1(int a)//定义函数f1
{
int b,c;//在函数f1中定义b,c
... //a,b,c有效
}
char f2(int x,int y)//定义函数f2
{
int i,j;
... //x,y,i,j有效
}
int main()//主函数
{
int m,n;
... //m,n有效
return 0;
}
1.主函数中定义的变量也只在主函数中有效,也不能使用其他函数中定义的变量。
2.不同函数中可以使用同名的变量,他们代表不同的对象,互不干扰。
3.形式参数也是局部变量。只在定义它的函数中有效。其他函数不能直接引用形参。
4.在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效。
全局变量:
#include <stdio.h>
int a = 3, b = 5;//a,b是全局变量
int main()
{
int main(int a, int b);//函数声明,a,b是形参
int a = 8;
printf("max=%d
", max(a, b));
return 0;
}
int max(int a, int b)//a,b是函数形参
{
int c; c = a > b ? a : b;//把a,b中的较大数存放入c
return (c);
}
静态局部变量
//考察静态局部变量的值
#include <stdio.h>
int main()
{
int f(int);//函数声明
int a = 2, i;//自动局部变量
for (i = 0; i < 3; i++)
printf("%d
", f(a));//输出f(a)的值
return 0;
}
int f(int a)
{
auto int b = 0;//自动局部变量
static int c = 3;//静态局部变量
b = b + 1;
c = c + 1;
return (a + b + c);
}