白羽
2018-11-21
来源 :网络
阅读 1292
评论 0
摘要:本文将带你了解IOS开发入门iOS开发系列----C语言(函数),希望本文对大家学IOS有所帮助。
本文将带你了解IOS开发入门iOS开发系列----C语言(函数),希望本文对大家学IOS有所帮助。
函数概述
1.为什么需要函数
当大型程序中,某个功能,会被反复利用,我们把这些功能【封装】成功能模块,称为函数。以后想使用这个功能,只需调用这个函数就可以了。使用函数可以降低开发成本,利于维护
2.函数的分类
库函数:由官方或者第三方库编写的函数,保存在动态库,静态库,甚至是开源代码。程序员可以直接调用。使用库函数时往往伴随着导入库或者导入头文件。如arc4random()在stdlib库中,需要头文件支持,通常不能修改。
自定义函数:我们自己根据项目需要写的函数。
3.函数由最简单的函数(无参数无返回值函数)、带参数和返回值的函数两类构成。
函数讲解
1.最简单的函数:左边的void(空),表示没有返回值,中间的func是标识符,表示【函数名】,右边括号里的void没有【参数】。声明和实现是创造一个函数,调用(使用)是使用函数。
//函数的声明
void func(void);
int main(int argc, const char * argv[]) {
//函数的调用
func();
return 0;
}
//函数的实现
void func(void) {
printf("hello world\n");
}
2.函数的传参
/* 如果函数在调用之前实现,就不需要声明
* @param a叫做这个函数的形参,形参是变量。传参的过程a = 5,a=2就是把值赋给变量的过程。
*/
void func(int a) {
for (int i = 0; i < a; i++) {
printf("hello world\n");
}
}
int main(int argc, const char * argv[]) {
func(5);//值,函数的实参,实参是值
func(2);
return 0;
}
3.带返回值和带参数的函数:
//它的返回值是变量(int),参数列表是两个变量(int,int)
int addHT(int a,int b) {
return a + b;
}
int main(int argc, const char * argv[]) {
int a = 5;
int b = 3;
int c;
//让c等于这个函数的返回值
c = addHT(a, b);
printf("%d\n",c);
printf("%d",addHT(a, b));
return 0;
}
4.作用域:变量的作用域(有效范围)是大括号之内,出了作用域就没有用了
void func(void) {
int a;
{
int b;
//只能在此大括号内对变量b进行操作
}
//只能在此大括号内对变量a进行操作
}
5.全局变量:声明在所有函数之外的变量,称为全局变量,作用域是从声明开始一直到文件尾。数据段的数据,默认为0
//全局变量,从声明开始一直到文件尾
int a;
void ret(void) {
a = 5;
}
int main(int argc, const char * argv[]) {
ret();
printf("a = %d\n",a);
a = 8;
printf("a = %d\n",a);
return 0;
}
6.静态变量:
①函数体内static变量的作用范围为该函数体,该变量只被分配一次,其值在下次调用的时候扔维持上次调用的值。
②模块内的static全局变量可以被模块内的所有函数访问,但不能被模块外的其他函数访问。
③模块内的static函数只能被该模块内部的其他函数调用,这个函数的使用范围被限制在该模块内部。
static int situationNum = 5;
void test(void) {
static int partNum = 5;
partNum++;
situationNum++;
printf("testPartNum = %d\n",partNum);
printf("testSituationNum = %d\n",situationNum);
}
int main(int argc, const char * argv[]) {
test();
test();
situationNum++;
printf("mainSituationNum = %d\n",situationNum);
return 0;
}
小练习
1.编写函数,求4个数的平均值。
2.编写函数,打印三个数的最大值 。(三目运算符: a>b?a:b的含义是如果a>b是a否则是b)。
参考答案(一万个读者有一万个哈姆雷特,一万个程序员有一万种编码风格,答案仅供参考)
1.编写函数,求4个数的平均值。
void mean(int a,int b,int c,int d) {
printf("%d",(a+b+c+d)/4);
}
int main(int argc, const char * argv[]) {
mean(10,20,30,40);
return 0;
}
2.编写函数,打印三个数的最大值 。(三目运算符: a>b?a:b的含义是如果a>b是a否则是b)。
void maxOfThree(int a,int b,int c) {
printf("%d",(a>b?a:b)>c?(a>b?a:b):c);
}
int main(int argc, const char * argv[]) {
int a = 5;
double b = 15.4;
float c = 0.003;
maxOfThree(a, b, c);
return 0;
}
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号