SQSH1616 12-19 C基础

一函数

1.函数的基本概念

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

(1)函数优点

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

(2)函数的分类

系统函数:
由C标准库提供的函数;如:printf()scanf()gets()
用系统函数时,只需将其对应的头文件包含起来,即可
exampl:
#include<stdio.h>------>printf("hello!");
pow(a,b);------>计算a的b次方
自定义函数:
用户根据需要自己定义的函数;
分类二:
有返回值函数:
函数调用结束后,会返回一个数值给主调函数;
无返回值函数;
函数结束后,无返回值,一般定义为viod函数,即空类型
分类三:
有参函数:
参数可以任意多
无参函数:

2.函数的基本定义L

(1)无参函数的定义

DataType FunctionName()
{
//函数体
//可执行语句
}
注:函数名背后的括号不可以省略!!!

(2)有参函数的定义

DataType FunctionName(Type arg1,Type arg2)---->(括号内为参数列表)
{
//函数体
}
注:参数列表可以有多个,参数的类型可以任意(相对)!

(3)函数的定义,函数的声明以及函数的调用

函数的定义
DataType FunctionName(参数列表);
{
//函数体
}
函数的声明:
DataType FunctionName(参数列表);
注:
声明时,参数列表一定要和定义时的参数列表一致!!!
后面的分号不可省略!!
放在函数被调用之前的任意
函数的调用;
FunctionName(value);
value:数值
注:
函数调用时,实参的类型,一定要和函数定义时的形参列表一致!
实参:
实际参数,即具体的数值
函数调用时的参数都是实参
形参;
形式参数,形参的定义和普通变量的定义无区别
函数定义及声明时的参数
注:函数名表示函数的入口地址,函数之间没有优先级问题,函数之间是等价的,即平行关系!!!
形参在发生调用时分配空间!!!
在发生我那个函数调用时,系统会默认将实参的值付给形参

3.函数的返回值

无返回值的类型函数类型为:void
DataType FuncName(参数列表)
{
//函数体
}
DataType:决定了函数的返回值类型;
若是int;则函数返回值为int类型
若是double;则函数返回值为double类型
如果函数的返回值能够在后面的程序中使用,则需要相同类型的变量接收返回值
若是void类型的函数,则无返回值,return可有可无!!!
若返回值不是void类型,则必须要有return!!!

4.return的作用

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

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

5.关键字

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

全局变量:
在函数体之外定义的变量
其作用域是从变量定义处开始的,一直到本文的结束!!!
在全局变量定义之前不可使用全局变量
局部变量:
在函数中定义的变量,作用域:整个函数
函数结束时,局部变量会自动消亡!
因此不同的函数中可以使用相同的变量名。
若局部变量和全局变量重名,则全局变量对局部变量不可见
auto:
声明变量是动态变量
可以省略,如:
动态全局变量:
生命周期:整个函数运行期间
动态局部变量:
生命周期:仅限于定义该变量的函数中
auto int a = 5;
int b = 4;
static:
声明变量为静态变量;
作用域:从定义处开始,到文件结束
声明周期:整个程序运行期间。
静态变量,若定义是没有初始化,则系统默认为初始化为:0!
静态变量只初始化一次!!!
静态函数:static修饰函数,则此函数只能用于本文件
其他文件不可使用!!!
extern:
声明为外部变量:extern int sum;
修饰函数:extern int test();
声明变量或函数在外部已定义;
register:
寄存器变量:变量直接存放在寄存器中
CPU的寄存器个数有限,不可以定义多个寄存器变量
速度快
const:
常量(只读变量),不可修改其值
const int num = 5;
int const num = 5;
const int p;值不可改
int const p;值不可改
int
const p;地址不可改
const int
const p;地址和值不可改

6.函数的传递

值传递
地址传递

7.指针函数和函数指针

指针函数:
int test();
返回一个局部地址是不允许的,没有意义
注意返回值问题,返回的是一个地址!!!
函数指针:
int (
pa)()

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

推荐阅读更多精彩内容

  • 问题:分支函数如何return:回多个值答:1.直接调用下一个函数,2.全局变量,3.文件,4.链表和容器,5.存...
    赋闲阅读 140评论 0 0
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 3,783评论 1 10
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,511评论 1 51
  • 灯光下的背影 你在缝缝补补 我只能默默看 夜里出来一看 你还在工作着 泪水打湿了眼 无私奉献的爱 把它留给了我 却...
    我爱吃任何鱼阅读 174评论 0 2
  • “我的家乡在农村,我想回家吃饭了,特向老师请三天假” 这是还在读小学五年级的小侄子,在上个月写的一份请假条,原因竟...
    五月成长笔记阅读 430评论 0 1