C语言博客作业03--函数

房东的猫 提交于 2019-12-03 09:56:46

0.展示PTA总分

1.本章学习总结

1.1 学习内容总结

1.c语言中函数的分类:

1.库函数
比如:
strcpy
Char
strcpy(char* destination,const char* source);
Printf
Int printf (const char* format,…);
Memset
Memset(void* ptr,int value,size_t num);
*2.自定义函数
函数组成:
type name(paral)
{
Statement;//语句项
}
type 返回类型
name 函数名
Paral 函数参数

2.函数的声明和定义

1.函数声明:
告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,无关紧要。
函数的声明一般出现在函数的使用之前。要满足先声明后使用。
函数的声明一般要放在头文件中的。
2.函数定义:
函数的定义是指函数的具体实现,交待函数的功能实现。
头文件:#include <stdio.h>
#include<time.h>
#include <stdlib.h>
#include<math.h>
void ListMenu1(int n);
void GetChoise();

3.函数的参数

*1.实际参数
真实传给函数的参数,实参可以是:常量,变量,表达式,函数等。无论参数是何种类型,都必须有真实确定的值。

*2.形式参数
函数名括号后的变量,形参只有在函数调用的时候才实例化,当函数调用完成就销毁了。

区别

*一、函数中使用:

形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。

实参出现在主调函数中,进入被调函数后,实参变量也不能使用。

*二、调用

形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。

实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。

//求最大公约数 
#include <stdio.h>

int gcd( int x, int y );

int main()
{
    int x, y;

    scanf("%d %d", &x, &y);
    printf("%d\n", gcd(x, y));

    return 0;
}

int gcd( int x, int y )
{
    int i;
    for(i=x;i>=1;i--){
        if(x%i==0&&y%i==0)
        break;
    }
    return i;
}

4.全局变量和 局部变量

*局部变量:“在函数内定义的变量”,即在一个函数内部定义的变量,只在本函数范围内有效。

*全局变量:“在函数外定义的变量”,即从定义变量的位置到本源文件结束都有效。

局部变量的有效适用范围被局限于所在函数内,因此主调函数只有通过参数传递,才能把实参数据传递给函数使用;同样,形参的改变也不会影响到实参变量。这种变量的有效使用范围,最大程度确保了

各函数之间的独立性,避免函数之间相互干扰。

全局变量:当一些变量需要被多个函数共同使用时。参数传递虽然是一个办法,但必须通过函数调用才能实现,并且函数只能返回一个结果,这会是程序设计受到很大限制。为了解决多个函数之间的变量

共用,因此定义了全局变量
(由于全局变量和局部变量的作用范围不同,因此允许他们同名,当在同一函数中同名时,全局变量不起作用而由局部变量起作用)

#include<stdio.h>
int i;
void mysub();
void main()
{
    int j = 5;
    i = 50;
    mysub(j);
    printf("i = %d\t%d\n", i, j);
}
void mysub(int j)
{
    i += 80;
    j += 100;
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!