【学习笔记之我要C】函数的参数与调用

简介: 【学习笔记之我要C】函数的参数与调用

一、函数参数

形式参数——形参

  形式参数是指函数名后括号中的变量,因为形式参数只有在函数被调用的过程中才实例化(分配内存单元),所以叫形式参数。当函数调用完成之后,形式参数就自动销毁了。因此形式参数只在函数中有效。

实际参数——实参

真实传给函数的参数,叫实参。实参可以是:常量、变量、表达式、函数等。无论实参是何种类型的量,在进行函数调用时,他们都必须有确定的值,以便把这些值传送给形参。

//判断一个数是不是素数
int is_prime(int n) {//这里的n就是形参
  //2->n-1之间的数字
  int j = 0;
  for (j = 2; j < n; j++) {
    if (n % j == 0)
      return 0;
  }
  return 1;
}
int main() {
  //100-200之间的素数
  int i = 0;
  int count = 0;
  for (i = 100; i <= 200; i++) {
    if (is_prime(i) == 1) {//这里i是实参
      count++;
      printf("%d ", i);
    }
  }
  printf("\n100-200之间有 %d 个素数\n", count);
  return 0;
}

二、函数调用

传值调用

  函数的形参和实参分别占有不同的内存块,对形参的修改不会影响实参。

//判断一个年份是否是闰年
is_leap_year(int x) {
  if ((0 == x % 4 && 0 != x % 100) || (0 == x % 400))
    return 1;
  else
    return 0;
}
int main() {
  int y = 0;
  for (y = 1000; y <= 2000; y++) {
    if (is_leap_year(y) == 1) {
      printf("%d ", y);
    }
  }
  return 0;
}

 上面的代码中,x是形参y是实参,如果打印x和y的地址,可以得出他们俩的地址并不相同。

传址调用

  传址调用是把函数外部创建的内存地址传递给函数参数的一种调用函数的方式;

  这种传参方式可以让函数和函数外边的变量建立起真正的联系,也就是函数内部可以直接操作函数外部的变量

//写一个函数,每调用一次这个函数,就会将num的值增加1
void Add(int* p) {
  (*p)++;
}
int main() {
  int num = 0;
  Add(&num);
  printf("%d\n", num);
  Add(&num);
  printf("%d\n", num);
  Add(&num);
  printf("%d\n", num);
}
目录
相关文章
|
3月前
|
存储 C语言
C 语言函数完全指南:创建、调用、参数传递、返回值解析
函数是一段代码块,只有在被调用时才会运行。 您可以将数据(称为参数)传递给函数。 函数用于执行某些操作,它们对于重用代码很重要:定义一次代码,并多次使用。
94 3
|
5月前
在调用一个函数时传递了一个参数,但该函数定义中并未接受任何参数
在调用一个函数时传递了一个参数,但该函数定义中并未接受任何参数
51 2
|
3月前
|
存储 C#
C# 方法详解:定义、调用、参数、默认值、返回值、命名参数、方法重载全解析
方法是一段代码,只有在调用时才会运行。 您可以将数据(称为参数)传递给方法。 方法用于执行某些操作,也被称为函数。 为什么使用方法?为了重用代码:定义一次代码,然后多次使用。
44 0
|
存储 C语言 容器
调用一个函数时发生了什么?
调用一个函数时发生了什么?
78 0
调用一个函数时发生了什么?
|
Java Scala 开发者
作为参数的函数 | 学习笔记
快速学习作为参数的函数
44 0
|
开发者 Python
函数的参数| 学习笔记
快速学习函数的参数
60 0
|
开发者 Python
函数的返回值| 学习笔记
快速学习函数的返回值
84 0
|
存储 Java Go
函数参数的传递方式 | 学习笔记
简介:快速学习函数参数的传递方式
72 0
函数参数的传递方式 | 学习笔记
【Groovy】闭包 Closure ( 闭包参数列表规则 | 默认参数列表 | 不接收参数 | 接收自定义参数 )
【Groovy】闭包 Closure ( 闭包参数列表规则 | 默认参数列表 | 不接收参数 | 接收自定义参数 )
136 0
【Groovy】闭包 Closure ( 闭包参数列表规则 | 默认参数列表 | 不接收参数 | 接收自定义参数 )
|
JavaScript 前端开发 开发者
函数的返回值 | 学习笔记
快速学习函数的返回值。

热门文章

最新文章