函数(Day-5)
发布日期:2022-02-08 18:03:20
浏览次数:38
分类:技术文章
本文共 2988 字,大约阅读时间需要 9 分钟。
1.函数定义及声明:
- 定义:函数是具有特定功能的代码段,某一段代码组合实现某个功能。 例如:main(主)函数
- 函数调用:通过名字调用函数 易于维护,可读性好
声明:
返回值类型 函数名(形式参数列表){ 功能代码块; return 返回值;// 无返回值时,返回值类型为void } 返回值类型:int void char float……. 函数名:驼峰命名法 sayHi 形参:函数的材料 注意:不同的函数中可以使用相同的变量名一个函数只有一个返回值,如果返回值类型不为空,切记函数写return语句。
如果实际返回值类型和声明的类型不一样,将会强制转换成声明的类型。- 定义函数的四种类型: 无返回值,无参数 无返回值,有参数 有返回值,无参数 有返回值,有参数(参数指形参哦) 函数中,return后面的语句并不会被执行
2.函数调用:
调用函数时,无论有无参数都要记得写(),实际参数(实参)可以是:常量 变量 表达式
普通变量传递是拷贝的状态,不是直接传递。函数的三部分:声明,定义,调用
函数声明:指定函数的名字,返回值类型,参数 如果函数定义出现在主调函数之前,可以省略函数声明 如果函数定义出现在主调函数之后,必须要声明函数例题一:输入日期,判断一年中的第几天
方法有各种各样的,本人只是写了两种情况而已~~ 方法一:(方法比较笨!!!)
int dayOfYear(int year, int month, int day){ int days = 0, mark = 0; if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) mark = 1; // 闰年 29天 else mark = 0; // 平年 28天 switch (month) { case 1: days = day; break; case 2: days = 31 + day; break; case 3: days = day + 59; break; case 4: days = 90 + day; break; case 5: days = 120 + day; break; case 6: days = 151 + day; break; case 7: days = 181 + day; break; case 8: days = 212 + day; break; case 9: days = 243 + day; break; case 10: days = 273 + day; break; case 11: days = 304 + day; break; case 12: days = 334 + day; break; default: break; } if(mark == 1 && month > 2) return days + 1; else return days;}
方法二:(这个比较简单,易理解)
int days[12] = { 31, 28, 31, 30, 31, 30, 31,31, 30, 31, 30, 31}; int sum = 0; for (int i = 0; i < month-1; i ++) { sum += days[i]; } sum += day; return sum;}
例题2:求三个数中的中间数
同样提供两种方法: 方法一:int midValue(int a, int b, int c){ int mid = 0; if ((a >= b && a <= c) || (a >= c && a <= b)){ mid = a; return mid; } else if((b >= c && b <= a) || (b >= a && b <= c)){ mid = b; return mid; } else { mid = c; return mid; }}
方法二:
int midValue(int a, int b, int c){ int max = 0, min = 0; max = a > b ? a : b; max = max > c ? max : c; min = a < b ? a : b; min = min < c ? min : c; return a + b + c - max - min;}
导入自己定义的函数用:“”
导入系统的函数用:<> .h文件:写声明函数 .m文件实现函数内容数组作为形参:
数组作为函数的参数时,函数一般情况下需要设置两个形参,一个存储数组名,一个存储数组元素个数 函数声明形式: 返回值类型 函数名(int a[], int count) // [ ]中不写东西 函数调用形式:数组名作为参数,传入的其实是数组的首地址 形参和实参操作的是同一个内存空间- 函数嵌套: 函数定义不可以嵌套,但是可以嵌套调用
- 函数递归:自己调用自己 但是递归函数一定要有出口。
变量的作用域
- 作用域(生命周期):变量的有效范围 (根据所定义的大括号的范围) 分为:全局变量和局部变量 局部变量:在函数体内部定义的变量 全局变量:在函数体外定义的变量 例:在main函数外部定义变量 for循环里面定义的变量,只限在for循环内部使用, 例(好好看看这个例子,要明白):
int i = 5;int main() { int i = 10; printf("%d ", i); return 0;}
打印结果为:10
在其他的.m文件中在变量前写extern int ; 就可以使用在main外定义的全局变量,还可以进行修改,修改之后,全局变量的改变。如果不想让其他文件使用全局变量,则可以使用关键字static: static int i; 则这个i只能在main.m文件里面使用。
转载地址:https://blog.csdn.net/Evelynzn/article/details/48368441 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月24日 05时08分43秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
PHP运行模式
2021-06-30
MYSQL的MERGE存储引擎
2021-06-30
mysql 压力测试脚本
2021-06-30
PHP代码保护——Zend Guard
2021-06-30
Javassist 使用指南
2021-06-30
Unix下C程序内存泄漏检测工具Valgrind安装与使用
2021-06-30
DFA和NFA
2021-06-30
CentOS装机必备-基本设置以及缺失文件
2021-06-30
自己开发操作系统
2021-06-30
phpize
2021-06-30
PHP安装eAccelerator
2021-06-30
PHP新的垃圾回收机制:Zend GC详解
2021-06-30
linux上使用strace查看C语言级别的php源码【一种方法】
2021-06-30
ACCEPT()和ACCEPT4()
2021-06-30
php内核探索方法与资源
2021-06-30
PHP安装扩展mcrypt以及相关依赖项 【PHP安装PECL扩展的方法】
2021-06-30
Javascript到PHP加密通讯的简单实现
2021-06-30
德国SNS交友/视频网站Poppen.de的技术架构分享
2021-06-30
UNIX环境编程
2021-06-30
一笔画问题【数据结构-图论】
2021-06-30