c语言入门- 函数,C语言入门-函数

一、初见函数

求出1到10、20到30和35到45的三个的和

#include

// 定义一个函数

void sum(int begin, int end)

{

int sum = 0;

int i = 0;

for (i = begin; i <= end; i++)

{

sum += i;

}

printf("%d到%d的和是%d\n", begin , end , sum);

}

int main()

{

sum(1,10);

sum(20,30);

sum(35,45);

return 0;

}

二、函数的定义和使用

函数是一块代码,接收零个或者多个参数,做一件事,并返回另个或者一个值

其他的和java差不多,这里就不详细记录了

从函数中返回值

// 定义返回值的类型

int max(int a , int b)

{

int ret;

if (a > b){

ret = a;

}else{

ret = b;

}

// 这个就是返回值

return ret;

}

int main()

{

// 接收返回的值

int x = max(3,6);

printf("%d\n", x);

return 0;

}

三、函数的先后关系

像上面把max函数写在上面是因为:

c的编译器自上而下的顺序分析你的代码

在看到max函数的时候,他要知道max函数的样子

也就是max函数需要几个参数,每个参数如何,返回什么类型

如果main函数写在上面的话,需要把自己定义的函数先进行声明,但是现在大部分编译器也可以不用声明了

// 进行声明

int max(int a , int b);

int main()

{

int x = max(3,6);

printf("%d\n", x);

return 0;

}

// 定义返回值的类型

int max(int a , int b)

{

int ret;

if (a > b){

ret = a;

}else{

ret = b;

}

// 这个就是返回值

return ret;

}

参数传递

类型不匹配?

调用函数时给的值与参数的类型不匹配是C语言传统上最大的漏洞

编译器总是把你类型转换好,但这可能不是你所期望的

后面的语言,c++/java在这方面很严格

void cheer(int i)

{

printf("cheer %d\n", i);

}

int main()

{

double f = 8.4;

cheer(f); // 8

cheer(2.0); // 2

return 0;

}

四、传值

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

过去,对于函数参数表中的参数,称“形式参数”,调用是给的参数叫“实际参数”

五、本地变量(局部变量)

函数的每次运行,就产生一个独立的变量空间,在这个空间中的变量,就是函数的这次运行多独有的,称之为本地变量

定义在函数内部的变量就是本地变量

参数也是本地变量

变量的生存期和作用域

生存期:什么时候这个变量开始出现了,什么时候消亡了

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

对于本地变量:前面两个问题的答案都是 --- 在大括号内

本地变量的规则

本地变量都是定义在块(大括号)内的

他可以是定义在函数的块内

也可以定义在语句的块内

程序运行进入这个块之前,其中的变量不存在,离开这个块,其中的变量就消失了

块外面定义的变量在里面仍然有效

块里面定义了和外面同名的变量则覆盖了外面的

不能在一个块内定义同名的变量

本地变量不会被默认初始化

参数在进入函数的时候会初始化

标签:函数,int,max,定义,ret,C语言,变量,入门

来源: https://www.cnblogs.com/mengd/p/11613873.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值