C语言学习------2.2函数

函数概述及定义

构成c语言程序的基本单元式函数,函数中包含的是可执行的代码。每个c程序的入口和出口都是main函数。c语言函数内部再定义函数是错误的。

函数定义

函数头

由三个部分构成 ①返回值类型②函数名③参数表

函数体

由两部分构成 ①局部变量的声明 ②可执行程序

注:在程序中编写函数时,要先对函数进行声明,在对函数进行定义。
声明是让编译器知道函数的一些基本配置,定义是让编译器知道函数的功能。

函数参数

形式参数

在定义函数时,函数名后面的括号中的变量名,在函数调用之前,传递给函数的值将被赋值到这些形式参数中。

实际参数

在调用一个函数时,函数的调用者提供给函数的参数。实际参数是表达式计算的结果,并且复制给函数的形式参数。


数组作为函数参数

当数组作为函数的参数是只传递数组的地址,而不是将整个数组赋值到函数中。
当数组名作为实参调用函数时,指向该数组的第一个元素地址的指针就被传递到函数中。与变量作为实参一样是单项传递的。
/*///*/
/*						数组名作为实参调用函数	*/
/*///*/
#include<stdio.h>
void  Evaluate(int iArrayName[10]);		/*声明赋值函数*/
void  Display(int iArrayName[10]);		/*声明显示函数*/

int main()
{
	int iArray[10];		/*定义一个具有10个元素的整型数组*/

	Evaluate(iArray);	/*调用函数进行赋值操作,将数组名作为参数*/
	Display(iArray);	/*调用函数进行赋值操作,将数组名作为参数*/
	return 0;
}
/*///*/
/*						数组元素的显示						*/
/*///*/
void  Display(int iArrayName[10])
{
	int i;
	for(i=0;i<10;i++)
	{
		printf("the member number is %d\n",iArrayName[i]);
	}
}
/*///*/
/*						进行数组元素的赋值					*/
/*///*/
void  Evaluate(int iArrayName[10])
{
	int i;
	for(i=0;i<10;i++)
	{
		iArrayName[i]=i;
	}
}



/*///*/
/*						可变长度的数组作为实参	*/
/*///*/
#include<stdio.h>


void  Evaluate(int iArrayName[]); /*声明函数,参数为可变长度数组*/
void  Display(int iArrayName[]); /*声明函数,参数为可变长度数组*/


int main()
{
int iArray[10];/*定义一个具有10个元素的整型数组*/


Evaluate(iArray);/*调用函数进行赋值操作,将数组名作为参数*/
Display(iArray);/*调用函数进行赋值操作,将数组名作为参数*/
return 0;
}
/*///*/
/* 数组元素的显示 */
/*//*/
void  Display(int iArrayName[]) /*定义函数,参数为可变长度数组*/
{
int i; /*定义整型变量*/
for(i=0;i<10;i++)/*执行循环的语句*/
{ /*在循环语句中执行输出操作*/
printf("the member number is %d\n",iArrayName[i]);
}
}
/*///*/
/* 进行数组元素的赋值 */
/*///*/
void  Evaluate(int iArrayName[]) /*定义函数,参数为可变长度数组*/
{
int i; /*定义整型变量*/
for(i=0;i<10;i++)/*执行循环语句*/
{ /*在循环语句中执行赋值操作*/
iArrayName[i]=i;
}
}



使用指针作为函数参数

当数组作为函数的实参时,只传递数组的地址。当使用数组名作为实参时,指向该 数组元素的指针就被传递到函数中。
/*///*/
/*						指针作为形参,数组名作为实参	*/
/*///*/
#include<stdio.h>

void  Evaluate(int* pPoint);				/*声明函数,参数为可变长度数组*/
void  Display(int* pPoint);				/*声明函数,参数为可变长度数组*/

int main()
{
	int iArray[10];							/*定义一个具有10个元素的整型数组*/

	Evaluate(iArray);						/*调用函数进行赋值操作,将数组名作为参数*/
	Display(iArray);						/*调用函数进行赋值操作,将数组名作为参数*/
	return 0;
}
/*///*/
/*						数组元素的显示						*/
/*//*/
void  Display(int* pPoint)					/*定义函数,参数为可变长度数组*/
{
	int i;									/*定义整型变量*/
	for(i=0;i<10;i++)						/*执行循环的语句*/
	{									/*在循环语句中执行输出操作*/
		printf("the member number is %d\n",pPoint[i]);
	}
}
/*///*/
/*						进行数组元素的赋值						*/
/*///*/
void  Evaluate(int* pPoint)				/*定义函数,参数为可变长度数组*/
{
	int i;									/*定义整型变量*/
	for(i=0;i<10;i++)						/*执行循环语句*/
	{									/*在循环语句中执行赋值操作*/
		pPoint[i]=i;
	}
}



main的参数

main(int argc , char *argv[])
两个特殊的内部形参argc和argv是用来接受命令行实参的。这是只有主函数main才具有的形式参数。

内部函数和外部函数

内部函数

定义一个函数,如果希望这个函数只被所在的源文件所使用,这样的函数成为内部函数,又称静态函数。

static 返回类型  函数名(参数列表);

外部函数

外部函数是可以被其他源文件调用的函数。
extern 返回类型 函数名(参数列表);

局部变量和全局变量

局部变量

在一个函数内部定义的变量,无法被别的函数使用,作用范围仅为函数内部的所有语句块。
在c语言中位于不同的作用于的变量可以起相同的变量名。此时内层作用域中的变量将屏蔽外层作用域中的变量。

全局变量

定义全局变量的作用是增加函数间数据联系的通道。同一文件中的所有函数都能够音乐用全局变量的值。

函数应用

常用库函数

数学库函数

引用maths.h

abs函数
功能:求整数的绝对值
int abs(int i);

labs函数
功能:求长整数的绝对值
long abs(long i);

fabs函数
功能:求浮点数的绝对值
double abs(double i);

sin函数
double sin(double i);

cos函数
double cos(double i);

tan函数
double tan(double i);


字符和字符串函数

isalpha函数 
引用ctype.h
功能:检测字母,若是字母表中的字母返回非0
int isalpha(int ch);

isdigit函数
引用ctype.h
功能:检测数字,若是数字则返回非0
int isdigit(int ch);

isalnum函数
引用ctype.h
功能:检测字母或数字,若是则返回非0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值