函数

  • 函数的定义:
    函数是一个完成特定工作的独立程序模块,包括库函数和自定义函数两种。例如,scanf( ),printf( )等为库函数,由C语言系统提供定义,编程时只要直接调用即可。自定义函数需要用户自己定义。
    函数定义的一般形式为:
函数类型 函数名(形式参数表)   /*函数首部*/
{
	函数实现过程               /*函数体*/
}
  • 函数的调用:
    在C语言中,调用标准库函数时,只需要在程序的最前面用 #include 命令包含相应的头文件:调用自定义函数时,程序中必须有与调用函数相对应的函数定义。
    1.函数调用过程:
    任何C程序执行,首先从主函数 main( )开始,如果遇到某个函数调用,主函数被暂停执行,转而执行相应的函数,该函数执行完后将返回主函数,然后再从原来暂停的位置继续执行。
    2.函数原型声明:
    C语言要求函数先定义后调用,就像变量一样。如果自定义函数被放在主调函数后面,就需要在函数调用前,加上函数原型声明。函数声明的目的只要是说明函数的类型和参数的情况,以保证程序编译时能判断对该函数的调用是否正确。函数声明的一般格式为:
    函数类型 函数名(参数表);
    3.函数调用的形式:
    对于实现计算功能的函数,函数调用通常会出现在两种情况下(cylinder()中,使用变量radius,height作为实参):
    (1)赋值语句:volumn = cylinder( radius,height);
    (2)输出函数的实参:printf(“%f”,cylinder(radius,height);
    函数调用的一般形式为:
函数名(实际参数列表)   /*实际参数(简称实参)可以是常量、变量和表达式。*/
  • 局部变量:
    C语言中把定义在函数内部的变量称为局部变量,局部变量的有效作用范围局限于所在的函数内部。形参是局部变量。
    使用局部变量可以避免各个函数之间的变量互相干扰。
    除了作用于函数的局部变量外,C语言还允许定义作用于复合语句中的局部变量,其有效使用范围被局限于复合语句内,一般用作小范围内的临时变量。
int main(void)
{
	int a=1;           /*主函数的局部变量*/
	{				   /*复合语句开始*/
		int b=2;	   /*复合语句内的局部变量*/
		···
	} 				   /*复合语句结束*/
	printf("%d",a);
	return 0;
}
  • 全局变量:
    定义在函数外而不属于任何函数的变量称为全局变量。全局变量的作用范围是从定义开始到程序所在文件的结束,它对作用范围内所有的函数都起作用。
    全局变量的定义格式与局部变量完全一致,只是定义位置不在函数内,它可以定义在程序的头部,也可以定义在两个函数的中间或者程序尾部,只要在函数内即可。
    由于全局变量和局部变量的作用范围不同,允许它们同名。当某函数的局部变量与全局变量同名时,在该函数中全局变量不起作用,而由局部变量起作用。对于其他不存在同名变量的函数,全局变量仍然有效。同样,当函数局部变量与复合语句的局部变量同名时,以复合语句为准。
/*全局变量定义*/
#include <stdio.h>
int x;                   /*定义全局变量x*/
int f();
int main(void)
{
	int a=1;            
	x=a;                 /*对全局变量x赋值1*/
	a=f();               /*a的值为4*/
	{
		int b=2;
		b=a+b;           /*b的值为6*/
		x=x+b;           /*全局变量运算*/
	}
	printf("%d%d",a,x);
	return 0;
}
int f()
{
	int x=4;            /*x为局部变量,在本函数中,全局变量x不起作用*/
	return x;
}

运行结果
4 7

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值