函数
来源:互联网 发布:平成废物知乎 编辑:程序博客网 时间:2024/05/16 03:06
函数:
定义:
Double average (double a,double b)
{
Return (a+b)/2;}
一开始的double为函数的返回类型(每次调用函数时的返回类型)a,b为函数的形式参数表示正在调用的函数 average需要提供的两个数每个形式参数必须有类型;形式参数本身是变量,其初值在调用函数式后才提供。
为了调用函数,需要写函数名及跟随后边的实际参数:
返回函数类型 函数名(形式参数)
{
声明
语句
};
函数不能返回数组,
如果指定为void类型,则没有返回值类型;
·判定素数的函数:
#Include《stdio.h》
Bool is prime(int n)
{
Int dicisor;
If (n<=1)
Rerurn false;
For (dicisior=2;divisor*divisor <=n;dicisor++)
If (n%divisior==0)
Return false;
Else
Return true;
}
函数的声明:
如果定义的函数在主函数前,则不需要声明;但是朱函数要在定义的函数之前,则必须声明。
#include《stdio.h》
Double average (double a ,double b)/*声明*/
所以说 调用函数式必须对函数进行定义或声明。
实际参数:
形式参数是出现在函数的定义中,实际参数是出现在函数的调用中c语言中,实际参数是通过值传递(调用函数时,计算出每个实际 参数的值,并且把它符给相应的形式参数)
Int sum _array(int a[],int n)
{
int ,sum=0;
For (i=0;i<n;i++)
Sum+=a[i];
Return sum;
}
其中数组的长度是n,sum_array需要知道数组的长度,所有必须把a的长度提出来
如果是int sum_arraty(int[],int n)
参数就是两个,分别是数组的名字和数组的长度
如下:
#ddefine LEN 100
Int main(void)
{
Int b[LEN],total;
Total=sum_array(b,LEN)
}
在把数组名传递给函数时,不要在数组名后面加方括号:
Total=sum_array(b[],LEN)是错误的!!!!
如果是形式参数是多维数组,声明参数时只能省略第一维的长度,如下:如果修改函数是的a是一个二维数组,我们可以不指出行的数量,但是必须指出列的数量:
#define LEN 10
Int sum_array(int a[][LEN],int n)
{
Int i , j ,sum;
For (i=0;i<n;i++)
For(j=0;j<LEN;j++)
Sum+=a[i][j];
Return sum;
}
定义变长数组可以使用如下方法:
(1) :Int sum_array(int n ,inta a[n] )
{
}
(2) :Int sum_array(int n ,int a[*] )
用* 的理由是形式参数的名字是可选的,如果第一个参数的定义被省略了,那么就没有办法定义数组a的长度是n,*说明数组的长度与形式参数列表中的参数相关
(3) :Int sum_array(int n ,int [*] )
变长数组是多维的则更加实用:
Int sum_array(int n, int m, int a[n][m])
{
Int i , j , sum;
For (i=0;i<n;i++)
For (j=0;j<m;j++)
Sum + =a[n][m]
Return sum;
}
函数的原型也可以是这样:
Int sum_array(int n, int m, int a[n][m])
Int sum_array(int n, int m, int a[*][*])
Int sum_array(int n, int m, int a[][m])
Int sum_array(int n, int m, int a[n][*])
如果参数的多维的,Static仅可用于第一维的
Int sum_arrray(int a [static3],int n)
复合字面量:
Int b[]={3,0,3,4,1};
Total=sum_array(b,5);
这样做的唯一问题就是需要把b作为一个变量来声明,并在调用前初始化,如果不对b作用,有点浪费;
这样可以用符合字面量来避免该问题:
复合字面量就是通过制定其包含的元素而创建的没有名字的数组,
第一个参数就是复合字面量:
Total=sum_array((int[]){3,4,3,4,1},5);
在这个例子中,复合字面量创建了一个由5个整数(3,4,3,4,1)组成的数组,这里没有对数组的长度进行特别的说明,由复合字面量的元素个数进行决定,当然也可以做准确的说明,如(int [4]){3,4,3,4,} 和上边的等同
复合字面量的格式为:
现在一队圆括号内给定类型,随后在以后的花括号内设定包括元素的值,复合字面量类似于初始化的强制转化:
当然也可以是coust类型的。
Return语句:
非void的函数必须使用return语句指定将要返回的值,return语句的格式如下
Return+表达式
表达式的形式可以是常量或者是变量,也可以是表达式;
Return 0;
Return status;
Return n>=0?N:0
如果如return语句中表达式的类型和函数的返回类型不匹配,那么系统将会把表达式的类型转换成返回类型
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- UIScreen(屏幕)、UIWindow(画框)、UIView(画布)、didFinishLaunchingWithOptions的概念
- 解决Android无法读取中文路径问题及中文文件名
- 从寄存器看I386和x64位中函数调用中参数传递
- 一天一天的充实。。。
- Android微信终端开发工具的新手使用教程
- 函数
- Mysql乱码问题
- static详解
- IOS微信终端SDK的新手使用教程
- 网络子系统52_ip协议报文重组
- HIbernate注解详解
- 网络共享
- linux下的网络基础
- ARM函数调用时参数传递规则