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

上节课回顾:

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分钟。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容