您的位置:首页 > 编程语言 > C语言/C++

黑马程序员--ios基础--c语言--函数

2015-05-16 17:52 176 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一.什么是函数

任何一个c语言程序都是有一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”。所以,你可以说c语言是由函数构成的。

二.函数的定义
1.定义函数的目的

将一个常用的功能封装起来,方便以后调用

2.定义函数的步骤

函数名:函数叫什么名字
函数题:函数是干啥的,里面包含了什么代码

3.格式

固定格式(很多语言的函数都是这么写的)

返回值类型 函数名(形式参数列表)

函数体

三.函数调用

四.函数的参数
1.形参和实参的基本概念
2.形参个书和实参一致
3.参数的传递是值传递
4.参数名不能跟函数哪的局部变量同名
#include <stdio.h>

int printLine()
{
    printf("-------------\n");
    return 0;
}

int average(int num1, int num2)
{
    return (num1 + num2)/2;
}

int main()
{
    /*
    printLine();
    
    printLine();
    
    printLine();
     */
    
    int a = 10;
    int b = 9;
    
    int c = average(a, b);
    
    printf("c is %d\n", c);
    
    int a1 = 11;
    int b1 = 20;
    
    int d = average(a1, b1);
    printf("d is %d\n", d);
    
    return 0;
}


五.函数的返回值
1.返回值的基本概念,return的作用
2.void
3.return
void可以省略return
可以多次使用return
return后面不能有其它语句
4.函数的弱语法
如果没有写返回值类型,默认是int
如果写了返回值,可以不返回
调用一个没有定义过的函数
六.定义函数的步骤
1.明确函数作用,起一个有意义的函数名称
2.明确函数的参数和返回值
七.函数注意
不能嵌套定义函数
死循环调用,自己调用自己
不能重复定义,可以重复声明
#include <stdio.h>

// 形式参数,简称形参
int sum(int num1, int num2)
{
    // 函数体内部不能定义和形参一样的变量
    // int num1;

    num1 = 50;

    return num1 + num2;
}

/*
 return的作用:
 1> 退出函数
 2> 返回一个具体值给函数调用者
 
 返回值注意点
 1> void代表没有返回值
 2> 如果没有明确说明返回值类型,默认是返回int类型
 3> 就算明确声明了返回值类型,也可以不返回任何值
 
 默认情况下,C语言不允许两个函数的名称一样
 */

char test()
{
    return 'A';
}

/*
void test(int a, int b)
{

}*/

void test5()
{
    
}

int test3()
{
    printf("999999999\n");
}

// 如果不明确声明返回值类型,默认就是int类型
test2()
{
    printf("888888888\n");
    return 10;
}

int main()
{
    int c = test2();
    printf("c=%d\n", c);
    
    test3();
    //test();
    
    /*
    int a = 100;
    int b = 27;
    
    // a、b称为函数的实际参数,简称实参
    int c = sum(a, b);
    
    
    printf("a=%d, b=%d, c=%d\n", a, b, c);*/

    return 0;
}


八.函数的补充
1.main函数
返回值:0,正常退出;1,异常退出
2.printf函数
#include
返回值:字符串的长i度
十.函数的声明
1.函数的定义顺序
2.函数的声明作用:声明和定义类似于***和人的关系
3.只有函数声明、没有定义,编译警告、链接报错
十一. .h和.c文件的分工
1.单文件的坏处
一个文件的内容太多,不利于阅读、调试
多人修改同一个文件出问题
公司里面是团队合作
2.将函数抽取到另一个.c文件中
3.在其他文件中声明函数
4.将抽取到另外一个文件中
5.抽取步骤总结
.c文件写函数的定义
.h文件写函数的声明
十二.#include
1.预处理指令简介
2.#include的作用
纯粹是文件拷贝
3.#include<stdio.h>
stdio.h中有什么?链接的时候做了什么事情:把项目中所有相关联的.o目标文件、c语言函数库合并在一起,生成可执行文件。
<>和""的区别
4.#include的路径问题
代码笔记如下:
ptt.c
#include <stdio.h>
#include "pdd.h"

int main()
{
    int score1 = 100;
    int score2 = 70;
    
    int c = average(score1, score2);
    int d = sum(score1, score2);

    printf("平均分是%d\n", c);
    printf("总分是%d\n", d);
    
    // \n是一个转义字符
    // \t tab键
    // \" 一个双引号
    // printf函数返回的字符串常量的字符数,并不是字数
    // 1个汉字占据3个字符
    int e = printf("哈h\"\ta\n");
    
    printf("e=%d\n", e);
    
    return 0;
}


函数的定义.c文件 pdd.c
int average(int a, int b)
{
    return (a + b)/2;
}

int sum(int a, int b)
{
    return a + b;
}

int minus(int a, int b)
{
    return a - b;
}

int multiply(int a, int b)
{
    return a * b;
}


函数的声明.h文件 pdd.h
/*
 pdd
 编写函数的声明
 */
int average(int a, int b);
int sum(int a, int b);
int minus(int a, int b);
int multiply(int a, int b);


编译链接:cc ptt.c pdd.c
生成可执行文件
./a.out 输出结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: