频道栏目
首页 > 程序开发 > 移动开发 > IOS > 正文
iOS开发系列----C语言(函数)
2016-11-18 08:15:44         来源:xiaozhuanddapang的博客  
收藏   我要投稿

函数概述

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;

}
点击复制链接 与好友分享!回本站首页
上一篇:[Xcode]iOS代码签名(Code Signing)
下一篇:iOS开发系列----C语言(内存及字符串)
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站