函数相关定义

目录

1、函数的定义

2、函数类型

3、函数的调用

4、形参与实参

5、局部、全局变量


1、函数的定义

  • 函数头:包括返回值类型、函数名和形参声明。

  • 函数体:复合语句。

2、函数类型

  • 分类函数,数学函数,目录函数,进程函数,诊断函数,操作函数等等。

3、函数的调用

  • 从主函数int main( )开始,之后再回头调用主函数中的函数

  • ()起到了表示函数调用的重要的作用

返回值类型 函数名() 如:void sum()

{

}

  • 你想要函数返回一个值 就用返回类型 return 0;

    因为继续需要调用ret,所以return ret ,在之后可以继续调用。

  • 而直接输出不需要返回void函数(空 )

4、形参与实参

形参列表:

形式参考的变量,在需要用到这个函数时,要什么数据,那么就可以用形参来表示。(只是一个形式 [类型],没有具体的值)

实参列表: 实际的

  • 二者关系:在调用函数时,会将实参传给形参,对应位置传参,值传递。

  • 每个函数有自己的变量空间,参数也位于这个独立的空间中,与其他函数没有关系

c语言在调用函数时,永远只能传值给函数吗,不能改变其他函数的值

如下:

#include<stdio.h>
void swap(int a, int b);
int main()
{
    int a = 5;
    int b = 6;
    swap(a, b);
    printf("a=%d b=%d\n", a, b);
    return 0;
}
void swap(int a, int b)
{
    int t = a;
    a = b;//a的值给了swap里面的a,
    b = t;//在swap里对a,b做的运算,是swap自己的参数ab之间的事情
            //与int a int b没有关系
}

5、局部、全局变量

  • 局部变量:作用域在一定域内才能被使用了自己的作用域会被释放

  • ( 如:在某个函数里面定义一个 int x )
  • 全局变量:从定义往下,任何地方都可以使用,直到程序结束被释放掉。

  • ( 如:主函数前面定义一个 int x)

注意:局部变量与全局变量可以同名,变量同名使用时,遵循就近原则

  • 静态变量:

    在程序执行后定义,生命周期是程序结束后才死亡,只定义一次(不重复)。

static int a=10;

内存四区

静态全局区(static): 静态变量,全局变量。初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后,由系统释放。

栈区(stack):存放函数的参数值局部变量等,由编译器自动分配和释放,通常在函数执行完后就释放(运行程序时系统自动申请内存,程序结束之后自动释放内存

堆区(heap): 主要是实例对象,动态的存储(非常大的内存池,非连续分配)存取速度比较慢,因为堆内存要在程序运行时动态分配内存。存储的内容由程序员自己销毁,如果程序执行完成还没有销毁,就自动销毁。

代码区:存放代码。

如下:输出结果全是11,是因为局部变量a在一次循坏定义后被释放

 for (int i = 0; i < 10; i++)
    {
        int a;
        a++;
        printf("%d\n", a);
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值