IOS开发入门之iOS开发系列----C语言(函数)
白羽 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
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved