函数参数的声明及调用

简介: 函数参数的声明及调用

一 函数的参数


1 形式参数


定义


函数的形式参数指函数名括号后的变量


为什么叫形式参数


因为它只有被函数调用的时候才会实例化(开辟内存单元)


存在范围


当函数调用完毕之后就自动销毁了 所以形式参数只在函数中有效


2 实际参数


定义


真是传递给函数的参数 叫做形式参数


类型


必须是常量 变量 常量表达式 函数等

无论是什么类型在函数调用的时候实际参数都必须有一个确定的值


二 函数的声明与定义


注意点


如果函数是在后面定义的 那么如果想在前面使用就必须声明一下函数

int main()
{
  int a = 3;
  int b = 5;
  int s = Add(a, b);
  printf("%d", s);
  return 0;
}
int Add(int x, int y)
{
  return x + y;
}


例如以上代码 想要使用的话就必须在前面声明一下这个函数


int Add(int, int);
• 1


记得要在后面加上分号


声明头文件


头文件中放什么?

存放函数的声明 类型的定义 头文件的包含

自己写的头文件和系统头文件引用有什么区别?

自己写的头文件要用双引号引用 系统的头文件使用<>引用



三 初识递归


写一个最简单的递归函数

int main()
{
  printf("1\n");
  main();
  return 0;
}


main()函数不停调用自身的过程 这就是一个简单的递归


使用递归函数来实现按照顺序打印1234


题目分析:递归的主要思想就是大事化小

要想顺序打印1234 那么可以想象成打印 123 加上一个4

又可以想象成打印12 加上一个3 一个4

又可以想象成打印1 加上一个2 一个3 一个4

了解到这些之后呢我们就可以开始着手写代码了


void print(int n)
{
  if (n>9)
  {
    print(n / 10);
    printf("%d ", n % 10);
  }
  else
  {
    printf("%d ", n % 10);
  }
}
int main()
{
  int n = 1234;
  print(n);
  return 0;
}

实现代码如上

解释原理如下


fa7a6ab07cee43ac817263955b5a5cfa.png


在文章的最后由上面的代码和图引申出递归的两个条件

1 要有限制条件 在限制条件达到时候停止“递” 开始“归”

2 每次递归要不断的接近限制条件

相关文章
|
6月前
|
编译器
关于被调用函数的声明和函数原型
在编程中,当我们在一个源文件中调用一个在其他源文件中定义的函数时,就需要对该函数进行声明,以便编译器知道该函数的存在、其返回类型以及它接受的参数类型和数量。这种声明通常被称为函数原型或函数的前向声明。
66 0
|
JavaScript 前端开发
什么是函数?函数分为几种,如何声明?区别是什么?
什么是函数?函数分为几种,如何声明?区别是什么?
69 0
|
14天前
|
存储 编译器 C语言
C语言函数的定义与函数的声明的区别
C语言中,函数的定义包含函数的实现,即具体执行的代码块;而函数的声明仅描述函数的名称、返回类型和参数列表,用于告知编译器函数的存在,但不包含实现细节。声明通常放在头文件中,定义则在源文件中。
|
3月前
【函数】函数的声明和定义
【函数】函数的声明和定义
|
6月前
|
编译器 C++
C++ 解引用与函数基础:内存地址、调用方法及声明
C++ 中的解引用允许通过指针访问变量值。使用 `*` 运算符可解引用指针并修改原始变量。注意确保指针有效且不为空,以防止程序崩溃。函数是封装代码的单元,用于执行特定任务。理解函数的声明、定义、参数和返回值是关键。函数重载允许同一名称但不同参数列表的函数存在。关注公众号 `Let us Coding` 获取更多内容。
172 1
我应该使用按值调用还是按引用调用?
我应该使用按值调用还是按引用调用?
|
6月前
函数的声明
函数的声明
|
C++
c++引用作为函数参数和函数返回值
c++引用作为函数参数和函数返回值
71 0
|
C#
C#中方法函数的声明和调用
C#中方法函数的声明和调用
164 0