c语言2

7.1知识点

函数概述

c语言总是将main函数作为程序的入口,都要在main函数中运行程序,其他函数都直接或间接在main函数中被调用

函数分类

从函数定义的角度

  • 标准函数(库函数)
都需要用#include导入
  • 用户自定义函数

从函数返回值的角度

  • 有返回值的函数
return作为结尾的函数
  • 无返回的函数
用于完成某项特定的处理任务,不返回函数值
需要指定为“空类型”,空类型的说明符为"void”

从主调函数和被调函数之间数据传递的角度

  • 无参函数

  • 有参函数

7.2知识点

函数定义

  • 无参数函数
类型说明符 函数名()
{
	函数体
}
  • 有参数函数
类型标识符 函数名(形式参数表列)
{
	声明部分;
	语句部分;
}

函数返回值

被调用完后,执行函数体中的程序段所取得的值,该函数将返回给主调函数

说明

  • 函数的值只能通过return语句返回主调函数
return语句形式

return (表达式);
  • 当函数类型与return语句的数据类型不一致时,以函数类型为准,自动进行类型转换

  • 在函数定义时若忽略了类型说明符,则默认函数返回值类型为整型

  • 不需要返回时,可以定义为“空类型”

7.3知识点

函数调用

一般形式

函数名(实参表列)

函数调用需要的条件

  • 首先被调用的函数必须是已经存在的函数

  • 如果使用库函数,则需要选导入#include

  • 如果使用自定义函数,而该函数的位置在调用它的函数的后面,应该在主调函数中对被调用的函数作声明。用点人能听懂的话来说就是,函数在被调用前,要先定义

7.4知识点

数组元素作函数实参

  • 用法和简单变量相同

数组名作函数参数

  • 要求行参和实参必须都是类型相同的数组名

  • 使用指针也可以实现地址传递

  • 双向进行,即传递后,在被调函数内若改变了行参的值,那么原数组(实参)也会改变

7.5知识点

函数的嵌套调用

  • 不能嵌套定义

  • 可以嵌套调用

7.6知识点

函数的递归调用

  • 函数的递归调用是指一个函数直接(调用一次)或间接(a调用b,b调用c...)地调用自身

两个不错的例子(很重要)

void fun(int n)
{
	if(n > 0)
	{
		fun(n-1);
	}
	printf("%d", n);
}

int main()
{
	int m = 3;
	fun(m);
}
  • 该例子运行结果为0123

原因如下

最后一次调用n为0时,直接执行一次printf(输出了0),随后由于该函数为空类型,则会继续执行主调函数调用的地方的下一句,因此,又执行了一次printf(输出了1),以此类推...
int fun(int n)
{
	if(n > 0)
	{
		fun(n-1);
	}
	return n;
}

int main()
{
	int m = 3;
	printf("%d", fun(m));
}
  • 该程序输出的结果是3

7.7知识点

局部变量

  • 变量只作用与局部

全局变量

  • 变量可以在任何地方调用

  • 定义时,只需写在任何函数之外即可

7.8知识点

静态存储方式

  • 静态存储方式是指程序运行期间分配固定的存储空间的方式

动态存储方式

  • 动态存储方式是指程序运行期间根据需要动态分配存储空间的方式

变量的存储类别

  • 数据的存储类别分为自动型(auto)、静态类型(static)、寄存器类型(register)、外部类型(extern)

auto变量(默认)

  • 如果不指定存储类别,则默认为auto

  • 属于动态存储方式,被分配在动态存储区。调用结束后,auto变量的值不保留

static变量

  • static 声明静态变量

  • 静态变量属于静态存储方式

  • 能使局部变量获得全局变量的特性

register变量

  • 一般变量默认存储在内存中,而register变量直接存储在寄存器中,可以显著提高效率

  • 一般情况下,不需要刻意定义register,因为系统会把经常访问的变量默认放在寄存器中

  • 寄存器数目有限,2~3个为宜

extern变量

  • 作用只有一个,即当全局变量定义在调用后时,需要声明,使用extern声明

本文作者:wedfrgt

本文链接:https://www.cnblogs.com/wedfrgt/p/16145330.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   wedfrgt  阅读(58)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 not found REOL
  2. 2 悪魔の子(恶魔之子) Mochoc
  3. 3 冒険でしょでしょ? 平野綾
404 not found - REOL
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.