C语言中函数声明、形参、实参

函数原型

原型prototype是函数的声明;描述了函数的返回值与参数;

函数原型说明了两点:

1、该函数的返回值

2、该函数的参数及其类型

++++++++++++++++++++++++++++++++++++++++++++++++++++++++

函数的参数

参数到底是什么:传递给函数的信息称为参数

如果一个函数不接受任何参数的话,函数头的圆括号中应该写关键字void。

如果函数接受一个int类型的变量,则可以如下声明一个函数原型:

void func (int n)

函数返回值类型  函数名(参数)

用逗号分隔参数;

++++++++++++++++++++++++++++++++++++++++++++++++++++++++

形参和实参的概念

声明一个参数,其实就是创建了一个被称为形式参数formal argument的变量。

上面例子中,int n 就是一个int类型的变量n。如果调用函数func(10)时,就会把10赋值给n。对于func(times)来说就是,把times的值赋值给n。

实际参数:函数调用时传递的值。actual argument

func(10)的意思就是把实际参数10传递给函数,然后函数把10赋值给声明创建的形式参数n。

func(times)的意思就是把times的值(即实际参数),赋值给形式参数n。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++

关键词:

函数

函数声明

函数调用

函数参数:形式参数、实际参数

函数返回值

原文地址:https://www.cnblogs.com/grooovvve/p/9826769.html

时间: 2024-10-06 09:03:11

C语言中函数声明、形参、实参的相关文章

c语言中函数的形参test(int *&a)?

今天在看一段c代码的时候看到一个函数的形参是(int *&a)居然是这个东西,这让我好生疑惑啊,不知道用这么多的地址符号用意何在呢?传址么? 那也不必这样,只需要用指针完全能够达到这样的效果啊,交换两个整形变量的数据,只要定义一个函数 swap(int* a,int *b) 在函数里面交换*a和*b的值即可了,这样便达到了修改形参而且改变实参的作用呀. 于是我去图书馆拿了一本c语言语法的书籍,发现&符号是取地址的作用,那么*&是个啥东西呢,一直没有看见. 最后在c++的一本书上也看

C语言中函数声明实现的位置

在学习C语言的时候我遇到了这么个事情,因为之前先学习的C#,在C#编译器中,函数的声明位置不会影响编译的结果,但是在C语言中却发生了错误 先看一段代码: #include <stdio.h> int main() { fun1(); fun1(); fun1(); fun2(); return 0; } /*方法1.用于输出消息1*/ void fun1() { printf("For he's a jolly good fellow!\n"); } /*方法2,用于输出消

C语言中函数和指针的参数传递

最近写二叉树的数据结构实验,想用一个没有返回值的函数来创建一个树,发现这个树就是建立不起来,那么我就用这个例子讨论一下c语言中指针作为形参的函数中传递中隐藏的东西. 大家知道C++中有引用的概念,两个数据引用同一个数据,那么更改任意的一个都相当于更改了本体,那么另一个数据所对应的值也会改变,可是C中是没有这个概念的.所以就产生了一些东西.和我们本来想的有差别. 一.明确C语言中函数的入口: C语言中函数的形参负责接收外部数据,那么数据究竟怎么进入函数的呢,其实我们在函数体内操作的形参只是传递进来

JavaScript中函数的形参和实参的实现原理剖析

我们都知道JS里面参数的传递是可以不一样的,比如我们有一个函数: <script type="text/javascript"> function one(a,b,c) { this.x = a; console.log(a); } one(1); </script> 我们传递的数字只有一个1,但是形参那里有abc三个.这分明对不上啊不是吗? 这个时候如果我们查看b,c的话会显示undefined.ps:比如console.log(b). 当然啦,本来就没有这两

从头开始-05.C语言中函数

函数: 完成特定功能代码段 特点:函数只有调用的时候才会执行 定义格式:返回值类型 函数名称(形参类型 形参名称,...){ 语句; ...  } 函数参数 形式参数:在定义函数的时候,函数名后面小括号中的参数 实际参数:在函数调用的时候,函数名后面小括号中的参数 注意点: 形参与实参必须一一对应 实参与形参的类型必须一致 基本数据类型作为函数参数传递是值传递 组作为函数参数传递是地址传递 指针作为函数参数传递是地址传递 结构体作为函数参数传递是值传递 返回值: return 作用: 1.结束函

C语言中函数的分类

在C语言中函数被分为两类,一类是系统提供的标准函数,又称库函数.标准函数由系统定义,在程序中可以直接调用,例如:printf(),scanf()等.另一类是用户自己定义的函数. 用户自己定义函数要遵循一定的规则,而且定义函数它一般的格式如下: 函数类型 函数名称(形式参数表){ 说明语句序列 可执行语句序列 } 通常函数类型与函数的返回值的类型一致,函数名称的命名规则同变量命名完全一样.形式参数表是用于调用函数和被调用函数之间的数据传递,因此它也需要进行类型说明. 例如: #include <s

C语言中的声明与定义的区别

1.对于下面的声明语句 int a; 如果其位置出现在所有的函数体之外,那么它就被称为外部对象a的定义.这个语句说明了a是一个外部整型变量,同时为a分配了存储空间.因为外部对象a并没有被明确指定任何初始值,所以它的初始值默认为0(某些系统中的连接器对以其他语言编写的程序并不保证这一点,C编译器有责任以适当方式通知连接器,确保未指定初始值的外部变量初始化为0). 2.又如下面的声明语句: int a = 7; 在定义a的同时也为a明确指定了初始值.这个语句不仅为a分配内存,而且也说明了在该内存中应

C语言中标识符声明的几个关键字总结

C语言中声明一个名称就是把一个标识符与某个C语言对象相关联,如变量.函数或类型,C语言中可以声明的名称包括:变量.函数.类型.类型标志.结构成员与联合成员.枚举常量.语句标号和预处理器宏.除了语句标号和预处理器宏之外,所有标识符都在C语言声明中声明,变量.函数.类型放在声明的声明符中,类型标志.结构成员与联合成员和枚举常量在声明的某种类型说明符中声明,语句标号在C语言函数中出现时声明,而预处理器宏用#define预处理器命令声明. 如下列声明: extern const volatile uns

C语言中函数返回数组

#include "stdio.h"/*int* set(int a,int *c){ int *b; b=malloc(sizeof(int)*3); c[0]=a; c[1]=1+a; c[2]=2+a; b[0]=13; b[1]=14; b[2]=15; return b;}*/char *set(void){ char *buf; buf=malloc(sizeof(char)*3);//创建内存区 buf[0]=0x30; buf[1]=0x31; buf[2]=0x32;