参数和变量

 函数分有参数函数和无参数函数,函数参数当然只有参数的函数。函数参数就是我们写函数名称后圆括号内的常量值、变量、表达式或函数。当我们定义函数时,这是的参数有称为形式参数,形式参数不能是常量值。当我们引用或调用该函数时,这时的参数有称为实际参数(实参)。形式参数的类型说明可在函数体{}与紧跟在函数名之后的()之间,也可在()之内,目前流行的风格应是在括号内。这是一种风格问题,可以依照个人习惯。

在函数调用时,大多数的情况下,主函数和被调用的函数之间有数据传递关系,在传递数据时情况较复杂,但记住一点就是参数类型必须匹配,数量一般也相等(除在某些库函数用省时后续参数),集中较复杂的情况说明如下:

    1,强制类型转换。这些类型转换必须是c语言中可进行的。如形参说明为int,而实参为float型,那么在实际处理时按float型处理。
    2,数据类型转换。包括字符串,在调用函数时传递实参变量数组的目前地址,或字符串的首指针。
    3,在以函数或表达式做参数时,实参形式的表达式或函数必须有确定的与形参类型匹配的值,
    另外还应注意,c中规定,实参变量对形参变量的数据传递都是在局部的情况下单向传递的,只能是实参传递给形参,而不能把形参传递给实参,但是如果实参变量和形参变量都是全局变量时就不同了,这时形参的改变会影响实参的改变,这在某些场合中是一种非常有用的方法。比如我们编写两个矩阵相乘的函数,两个实参形式的矩阵相乘函数调用一个函数时,相乘的结果(两矩阵相乘)要返回到调用函数,这是用全局变量就是一种折中的方法,但最好的方法还是采用函数参数直接返回的方法,下面是用全局变量的方法实现的数组之间的乘法,用来说明参数的传递。

       package com.wepull.lesson1;

import java.util.Scanner;

public class TestJieCheng {
 public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
  System.out.println("请输入一个数");
  int a = sc.nextInt();
  int c = f(a);
  System.out.println(a + "的阶乘为" + c);
 }

 public static int f(int n) {
  if (n == 0 | n == 1) {
   int m = 1;
   return m;

  } else {

   int p = n * f(n - 1);
   return p;
  }

 }
}

       函数参数像数学中的函数一样,在数学中,y=f(x)是基本的函数表达形式,x可看作是参数,y可看作是返回值;z=f(x,y)事二元函数,有两个参数,在C语言中对应于两个参数的函数。这样大家或许明白了什么时函数及函数参数了吧。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值