c语言函数总结

基础知识

函数的定义和调用

具有通用、独立的功能,可以被反复调用的一段代码

函数定义由两部分组成:函数首部和函数操作描述 

函数调用是通过表达式或语句激活并执行函数代码的过程


参数

函数的一个明显特征就是使用时带括号( ),必要的话,括号中还要包含数据或变量,称为参数(Parameter)。参数是函数需要处理的数据

返回值

既然函数可以处理数据,那就有必要将处理结果告诉我们,所以很多函数都有返回值(Return Value)。所谓返回值,就是函数的执行结果。

函数的定义格式为
1
2
3
4
5
        返回值类型  函数名 (  形参列表 )
        {
            ....
            return  对应的返回值类型数据(常量或变量);
        }

返回值类型  如果没有,则写成void

形参列表   如果没有,则写成void

声明

C语言代码由上到下依次执行,原则上函数定义要出现在函数调用之前,否则就会报错。但在实际开发中,经常会在函数定义之前使用它们,这个时候就需要提前声明。

所谓声明,就是告诉编译器我要使用这个函数,你现在没有找到它的定义不要紧,请不要报错,稍后我会把定义补上。

函数声明的格式非常简单,相当于去掉函数定义中的函数体再加上分号;,如下所示:

返回值类型  函数名( 类型 形参, 类型 形参… );

也可以不写形参,只写数据类型:

返回值类型  函数名( 类型, 类型…);

函数声明给出了函数名、返回值类型、参数列表(参数类型)等与该函数有关的信息,称为函数原型

函数原型的作用是告诉编译器与该函数有关的信息,让编译器知道函数的存在,以及存在的形式,即使函数暂时没有定义,编译器也知道如何使用它。

传值参数

调用函数时,实参表达式的值被复制到相应形参标识的对象中,
并按形参类型强制转换              
函数内对形参的访问、修改,都在形参的标识对象进行
函数返回时,形参对象被撤消,不影响实参的值
值传送的实参可以是常量、有确定值的变量或表达式 

函数返回值通过匿名对象传递 

例题

1.

double max ( double x , double y )

{  if ( x > y )return 语句形式:
return x ;
    else
return y ;

return 语句形式:

return  表达式  
  或 return (表达式 )
作用:
 返回函数值
不再执行后续语句,程序控制返回调用点
 一个函数体内可以有多个return 语句
 表达式 返回值的类型与函数类型不相同时,

 自动强制转换成函数的类型

2.函数原型

#include <iostream.h>
double max( double, double ) ; // 函数原型
void main()
{ double a, b, c, m1, m2 ;
   cout << "input a, b, c :\n" ;
   cin >> a >> b >> c ;
   m1 = max( a, b ) ; // 函数调用
   m2 = max( m1, c ) ;
  cout << "Maximum = " << m2 << endl ;
}
double max( double x, double y ) // 函数定义
{  if ( x > y )    return x ;
    else return y ;

3.值参传递

#include<iostream.h>
int add(int ,  int ) ;
void main()
{
  int a, b, c ;
  cin >> a >> b;
  c = add(a,b) ; 
  cout << "c = " << c << endl ;
}
int add(int i, int j )
{  i + + ;  j + + ; 

   return ( i + j ); }

a=2,b=4,c=8;

输出c=8

4.将一个偶数分解成两素数之和

#include <iostream>
#include <cmath>
using namespace std;
int prime(int x);
  int main( )
  {
    int n, n1, n2;
    cin>>n;
    for (n1 = 2; n1 <= n/2; n1++)
    {
n2 = n - n1;
if(prime(n1)
    if(prime(n2)
  cout<<n<<“=“<<n1<<“+”<<n2<<endl;
    }
  return 0;

  }

5.用指向数组的指针变量输出数组的全部元素

int main( )
{   int  a[10], i;
     int  *p;
     for (i=0; i<10; i++)
           cin>>a[i];


     for (p=a;  p<a+10;  p++)
          cout<<*p<<‘\t’;

}

int main( )
{   int  a[10], i;
     int  *p=a;
     for (i=0; i<10; i++)
           cin>>a[i];
     for (i=0; i<10; i++)
          cout<<*p++<<‘\t’;

}输出数据后指针加1


心得

经过这段时间的学习,发现C语言的学习已经慢慢的变得深入了,对于学习相比起上学期变得有些吃力,对于函数呢,还算比较容易理解,可以与上学期的内容联系起来,但是到了函数的递归与参数就有些难以理解。

在我自己及看来呢,在函数的学习中主要需要注意这几个问题:

1.函数的返回值类型,也就是return的内容的类型,注意如果有多种结束函数途径的话一定要有多个return

2.函数形参的传递关系,有的可以改变值,有的不可以

3.形参实参都用数组名

实参用数组名,形参用指针变量

形参实参都用指针变量

实参为指针变量,形参为数组名



     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值