C语言学习笔记 初识函数

1. 函数定义:

2.  函数返回:

从函数中返回return停止函数的执行,并返回一个值。
return;或return 表达式 ;
没有返回值的函数 void 函数名(参数表)

3.  函数原型:

#include <stdio.h>

void sum(int begen, int end);//声明

int main() 
{
    sum(1, 10);
    return 0;
}

void sum(int begen, int end)//定义
{
    //函数体;
}

4.  参数传递

类型不匹配。调用函数时给的值与参数的类型不匹配时,C语言编译器总是偷偷地替你把类型转换好,但是这可能不是你所期望的,

后续的语言,C++和Java在这方面很严格。

void cheer(int i)
{
    printf("cheer %d", i);
}

int main()
{
    cheer(2.4);
    return 0;
}
//warning C4244: “函数”: 从“double”转换到“int”,可能丢失数据
//cheer 2

传值:

void swap(int a, int b);

int main()
{
    int a = 1, b = 2;
    swap(a, b);
    printf("a=%d, b=%d", a, b);

    return 0;
}

void swap(int a, int b)
{
    int t = a;
    a = b;
    b = t;
}
//a=1, b=2

这样的代码无法交换a和b的值,C语言在调用函数时,永远只能传值给函数。

 5.  本地变量 

定义:定义在函数内部的变量就叫本地变量,又称局部变量。参数也是本地变量。

变量的生存期:什么时候变量开始出现了,到什么时候变量又消亡了。

变量的作用域:在代码的什么范围内可以访问这个变量(这个变量可以起作用)。

对于本地变量这两个问题的答案是统一的:大括号内-------块

本地变量的规则:

  1. 本地变量是定义在块内的,它可以定义在函数的块内、语句的块内,甚至可以随便拉一个大括号来定义变量。
  2. 程序运行进入这个块之前,其中的变量不存在,离开这个块,其中的变量就消失了。
  3. 块外面定义的变量在块里面仍然有效。
  4. 块里面定义了了外面同名的变量则掩盖了外面的。
  5. 不能在一个块内定义同名的变量。
  6. 本地变量不会被默认初始化。
  7. 参数在进入函数的时候被初始化了。

6.  一些细节

没有参数时

void f(),在传统C中,它表示f函数的参数表未知,并不表示没有参数。

void f(void)

在函数原型中有参数时,最好标明。

逗号运算符

调用函数时的圆括号里的逗号是标点符号,不是运算符。

f(a,b)与f((a,b))的区别是传入的参数是一个还是两个。

C语言不允许函数嵌套定义

 

posted @ 2020-07-19 18:04  椰汁软糖  阅读(225)  评论(0编辑  收藏  举报