美文网首页
培训第十天----函数相关

培训第十天----函数相关

作者: 穹蓝奥义 | 来源:发表于2016-12-19 17:52 被阅读0次

上节课回顾:

homework:

strcpy()
strcmp()
strcat()

今日内容

一、函数

1.函数的基本概念

函数是把代码中功能相似并独立的代码单独封装成一个独立的整体。

(1)优点

提高代码的简洁性,提高开发效率。
提高代码的重要性。
有利于程序的维护。

(2)函数的分类

分类一:

系统函数
由C系统提供的函数,如:printf(),scanf(),gets(),purs()
调用系统函数时,只需要将其对应的头文件包含进来即可,

#include<stdio.h> pirntf("hello!");
pow(a,b)                             //计算a的b次方
toupper                              //小写转为大写
tolower                              //大写转为小写

自定义函数:用户根据需要自己定义的函数

分类二:

有返回值函数,函数调用结束,会返回一个数值给主调函数;
无返回值函数,函数结束后,没有返回值,一般定义为void类型,即空类型。

分类三:

有参数函数:参数可以任意多。
无参数函数

2.函数的基本定义

(1)无参函数的定义

DateType FunctionName()         // 函数头 函数名
{
    //函数体;
    //可执行语句;
}

注:函数名后的括号 "()" 不可以省略!!
"{}"里的都是函数体。

(2)有参函数的定义

DateType FunctionName(Type arg1,Type arg2)
{
    //函数体;
}

注:Type arg1,Type arg2:称为参数列表,可以很多个,参数类型(相对而言)可以任意!

(3)函数的定义,函数的声明已经函数的调用

函数的定义:
DateType FunctionName(参数列表)
{
    //函数体;
}
函数的声明:(可有可无)
DateType FunctionName(参数列表);         //";"不能省!!

注:声明时,参数列表一定要和定义时的参数列表一致!!
放在文件首,函数名表示函数的入口地址,告诉系统位置。

函数的调用:

FunctionName(value);                      //value:数值

注:函数调用时,实参值的类型,一定要和函数定义时的形参列表一致!!

实参:实际参数,具体的数值。
形参:形式参数,形参的定义和普通变量的定义无区别!
顺序:声明,自定义函数,main函数调用。

函数定义在调用后,需要声明。
函数之间没有优先级问题,函数之间是等价的,即平级。
形参在发生调用时分配空间!!
在发生函数调用时,系统会默认将实参值赋给形参。

函数的返回值

无返回值的类型函数类型为:viod。

ReturnvalueType FunctionName(参数列表)
{
    //函数体;
}

ReturnvalueType:觉定了函数返回值的类型 int test{...return value}。一定要一致!!

若是int,则函数返回值为int型。
若为double,则返回值为double类型。
若是void类型的函数,则无返回值,return可有可无
若函数不是void类型,则必须要有return!!

4.return的作用

(1)函数遇到return则结束,后面的代码不再执行

(2)用于返回函数的值即执行结果

5.关键字

(1)变量分为全局变量和局部变量

全局变量:在函数体外定义的变量。

作用域:从变量定义处开始,直至本文件结束,定义之前不可使用。
在全局变量定义之前不可使用全局变量。

局部变量:在函数内定义的变量。

作用域:是整个函数。
函数结束时,系统会自动释放,因此不同的函数中可以使用相同的变量名。
若全局变量与局部变量重名,则屏蔽自动全局变量。

auto: 声明变量是动态变量,可以省略!

动态全局变量,作用域:从定义处开展至文件末,周期为整个程序运行期间。
动态局部变量,周期仅限于定义该变量的函数中。
如:

auto int a = 5;
int a = 5;
static: 声明变量为静态变量;

作用域:从定义处到文件结束,周期为整个程序运行期间。
若定义时未初始化,系统默认为0;
即使初始化,根据返回值来决定下一次使用的初值!!
静态全局变量
静态局部变量
静态函数:static修饰函数,则此函数只能用于本文件,其他文件中不可使用!!!!

extern: 声明为外部变量:extern int sum;

修饰函数:extern int test();
声明变量或函数在外部已定义;
register:寄存器变量:变量直接存放在寄存器中,速度快。
CPU的寄存器个数有限,不可以定义多个寄存器变量!!底层才会使用。

const:常量,不可更改其值。

const int num = 5;   //只读变量5,不可更改。
int const num = 5;   //只读变量5,不可更改。
const int *p;       //值不可改
int const *p;       //值不可改
int* const p;       //地址不可改
const int* const p;  //常指针常量 值与指针都不可更改。

6.函数的传参

传参都是单方向的,从主函数传到自定义函数。
值传递,传值,仅对值的操作,并没有改变变量地址里的内容。
地址传递,传址,对地址操作,修改变量对应地址的内容。
传参的方式:传值,传地址,传引用。

7.指针函数和函数指针

指针函数:int *test(); 函数为一个整型指针。

返回一个局部地址无意义,不允许。
注意返回值问题,返回的是一个地址!!

函数指针:int (pa)();类型是int ()(),即整型函数。

排版用时25分钟。

相关文章

  • 培训第十天----函数相关

    上节课回顾: homework: 今日内容 一、函数 1.函数的基本概念 函数是把代码中功能相似并独立的代码单独封...

  • iOS runtime主要函数

    类相关操作函数 实例相关操作函数 属性操作相关函数 方法操作相关函数 选择器相关的操作函数 协议相关的操作函数 b...

  • python 内置函数

    类型转换函数 变量相关 数学函数 进制相关函数 字符串相关函数

  • 2017.12.05

    今天是C语言培训第十天,上午讲了函数声明,形参实参和条件表达式。条件表达式的结构为?:举个例子,printf("...

  • 2018-09-10

    [特训营3期 2018年9月10日 第十天打卡] 今天是加入训练营的第十天,昨天学习的是认识函数和函数的基本用法。...

  • 函数相关

    函数定义 def 定义函数,函数返回值用return; python参数定义顺序必须是:必选参数、默认参数、可变参...

  • 函数相关

    一、函数声明和函数表达式有什么区别? JavaScript有三种方法,可以定义一个函数。1.函数声明。如下面的例子...

  • 函数相关

    函数声明与函数表达式的区别 26.js编写时遇到个问题:下面这两种写法竟然有区别,第一种写法无法正常使用CSS选择...

  • 函数相关

    (记录笔记) this关键字 什么是 this?this 是 JavaScript 的一个关键字,一般指向调用它的...

  • 自相关函数与互相关函数

    最近做相关滤波追踪的时候,遇到了瓶颈,所以想从头到尾理一理基础知识。 1、概念 相关函数是描述信号X(s),Y(t...

网友评论

      本文标题:培训第十天----函数相关

      本文链接:https://www.haomeiwen.com/subject/dwhtvttx.html