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

C语言基础知识(五)(模块化)

2020-08-05 08:53 525 查看

一、函数位置

函数声明:定义的函数要是放在主函数后面,就需要在主函数mian之前或mian函数中开头部分,对定义函数进行声明。

声明的时候要把函数的函数名、函数返回类型和参数个数类型等写清楚。

函数不用声明:如果在main函数之前进行,进行函数的定义,则不用进行函数的声明。(即声明和定义同时进行了)。

二、有无参数函数定义

[code]类型名 函数名()
{
函数体
}

例如:无返回值的无参函数
void nihao()
{
printf("你好\n")
}

类型名 函数名(形式参数列表)
{
函数体
}
例如:有返回值的有参函数
int max(int x, int y)
{
int z;
z = x > y? x: y;
return z;
}

三、形参和实参

形参:定义的函数括号中的变量名称为“形式参数”。

实参:在主函数中调用另一函数时候,传递的参数。

1、实参传递给形参的时候,类型一般要相同,同时允许赋值兼容。例如:实参是float型3.6,形参是int。则先把3.6传给形参,再转换成整数3.(float转int一般直接取整数部分,抛弃小数部分)

2、形参在没有出现函数调用的时候,不占存储单元。在发生函数调用的时候,才进行内存的分配。调用结束,形参单元被释放。

3、传递方式,实参向形参的数据传递都是值传递,并且是单向传递。

4、返回值,如果函数值的类型和return的值不一样,以函数类型为准,将return值进行转换。

四、函数的声明

[code]两种方式:
int max(int x, int y); //参数类型和参数名都写(用这样方式,方便阅读)
或
int max(int, int); //只写参数类型

五、函数作用范围

如果函数在主函数的外面进行声明,则该函数的作用范围对整个文件有效,即无论main还是其他函数都可以调用。

如果函数 a 在主函数或某函数的里面进行声明,则函数 a 的作用范围是主函数或某函数内部有效。

六、函数定义和调用

1、C语言中各个函数是相互平行的,即,一个函数内不能再定义另一个函数。但是,函数可以嵌套调用。

2、数组名作为函数参数。数组元素作为实参时,向形参传递的是数组元素,而用数组名作为函数实参时,向形参传递的是数组首元素地址。其中在定义形参数组时候,不用指定数组大小,因为地址传递,会一一对应实参数组元素的。

七、多维数组名作函数参数

定义多维数组作为函数形参的时候,可以指定每一维的大小,例如int arr[3][2]。也可以省略第一维的

大小,例如int arr[ ][2],因为数组存放的时候是按照行存放的。但是不能省略第二维的大小或都省略

八、函数return可以返回多个值

一般return只能返还一个值,但是可以通过一下几种方法。使调用一个函数可以返回多个值。

1、利用全局变量

2、利用数组指针传递

3、传递结构体指针

九、静态和动态存储方式(放在内存中)

数据分别放在静态和动态存储空间。其中,全局变量全部放在静态存储区,当程序开始执行使就给全局变量分配存储区,程序执行完成就释放。静态变量在程序执行过程中,占固定的存储单元

 动态存储区存放:1、函数形参。2、没有使用static的变量。3、函数调用时的现场保护和返回地址等。在函数调用的时候,开始分配动态存储空间,函数结束即释放,存储区是动态变化的。

在C语言中,每个变量和函数都有俩属性:数据类型和数据存储类型。

关键字auto型可以省略,因为不指定函数存储类型的都默认为自动存储类型,属于动态存储方式

静态局部变量

1、在下次再调用该函数的变量的时候,该变量已有值(就是上次的值)。也就是说,局部静态变量在函数调用结束后,它并不释放而是保留当前值。

2、对静态局部变量在编译的时候就赋值了,即只赋值一次,在程序运行的时候它就已经有值了。(自动变量赋初值是在函数调用的时候进行,并每调用一次函数就赋值一次)

3、变量在定义时不赋值,静态变量在编译的时候会自动赋值为0(数值变量)或空字符 '\0'(字符变量),自动变量来说,其值不确定。

十、register寄存器变量(速度快,直接在寄存器上读取)

十一、静态存储区放有:1、全局变量 2、静态变量 

十二、扩展外部变量的作用域

1、

其中,外部变量是在函数的外部定义的全局变量。 在使用extern进行外部变量申明的时候,类型名可以省略。例:extern int A,B;

也可写extern A,B;

2、将外部变量的作用域扩展到其他文件中

一个文件想使用另一个文件的外部变量:在一个文件中定义外部变量Num,而在另一文件中用extern对Nnum进行外部变量声明,即可。

十三、将外部变量的作用限制在本文件中(只能在本文件中使用,便于模块化,防止其他人在别的文件中误用该变量)

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: