-
形式参数的声明是放在函数定义的第2行-(args definition of function)
2013-01-07 16:54:43在查看gzip软件的源代码时,发现很多感觉很奇怪的函数定义。如下: int getopt (argc, argv, optstring) int argc; char *const *argv;...在老版本C语言中,函数的形式参数的声明是放在函数定义的第2行的。 所在查看gzip软件的源代码时,发现很多感觉很奇怪的函数定义。如下:
int getopt (argc, argv, optstring) int argc; char *const *argv; const char *optstring;
感到很莫名。上网查找之后,才知道。
在老版本C语言中,函数的形式参数的声明是放在函数定义的第2行的。
所以大家看到后不要迷茫。知道如此即可。自己写代码的时候不要刻意模仿,保持代码风格一致最好。
-
定义带形式参数的函数&& 声明带形式参数函数的原型&&调用带实际参数的函数
2019-11-10 18:19:39函数参数 例: #include<stdio.h> #include<string.h> #define NAME "GIGATHINK, INC." #define ADDRESS "101 Megabuck Plaza" #define PLACE "Megapolis, CA 94904" #define WIDTH 40 #define SPACE '...例:
#include<stdio.h> #include<string.h> #define NAME "GIGATHINK, INC." #define ADDRESS "101 Megabuck Plaza" #define PLACE "Megapolis, CA 94904" #define WIDTH 40 #define SPACE ' ' void show_n_char(char ch,int num); int main() { int spaces; show_n_char('*',WIDTH); putchar('\n'); show_n_char(SPACE, 12); printf("%s\n",NAME); spaces = (WIDTH - strlen(ADDRESS)) / 2; show_n_char(SPACE, spaces); printf("%s\n",ADDRESS); show_n_char(SPACE,(WIDTH - strlen(PLACE)) / 2); printf("%s\n",PLACE); show_n_char('*',WIDTH); putchar('\n'); return 0; } void show_n_char(char ch, int num) { int count; for(count = 1; count <= num; count++) putchar(ch); }
在这个例子中文字是居中的,这样就需要打印一定数量的空格在文字前面,其运行结果如下:
根据这个例题来学一下函数参数;定义带形式参数的函数
void show_n_char(char ch,int num)
这个告诉编译器show_n_char()使用两个参数ch和num,ch是char类型num是int类型,这两个变量被称为形式参数简称形参,形参是局部变量,属于函数私有,也就是在其他函数中运用同名变量
注意:每个变量前都要声明其类型不能写成这个样子
void swap(int x, y)
正确的应该这样写
void swap(int x, int y)声明带形式参数函数的原型
在使用函数之前,要用ANSI C形式声明函数原型:
void show_n_char(char ch,int num);
函数原型用逗号分隔的列表指明参数(变量名可省略)调用带实际参数的函数
在函数调用中提供了ch和num的值。
形式参数是被调函数中的变量;
实际参数是主调函数赋给被调函数的具体值
实际参数可以是变量,常量,或甚至是更复杂的表达式,无论实际参数是什么形式都要被求值,然后这个值被拷贝给被调用函数相应的形式参数
例如: show_n_char(SPACE,(WIDTH - strlen(PLACE)) / 2);
这个第二个实参是一个很长的表达式
无论被调用函数对拷贝数据做了什么,主调函数中的原始数据都不会被影响。注意:实际参数和形式参数
实际参数是出现在函数调用圆括号中的表达式,形式参数是函数定义的函数头中声明的变量调用函数时,创建了声明为形式参数的变量并初始化为实际参数的求职结果 -
形式参数和实际参数的区别
2017-10-18 19:53:51形参:全称为“形式参数”是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。 实参:可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有...形参:全称为“形式参数”是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。
实参:可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。
实参和形参的区别:
空白或占位符
1。函数的形参列于函数声明中,在函数定义的函数体内使用。当函数调用时,形参(任何种类的)是一类将被填充的空白或是占位符。
用来填充形参
2。实参是用来填充形参的。当函数被调用时,实参列在函数名后面的括号里。执行函数调用时,实参被传递给形参。
传值调用和引用调用
3。在值传递当中,主调函数调用被调函数时,形参用于接收实参传递过来的数值,这个时候在函数体内,形参的值参与各种运算和处理都不会影响实参的值,因为实参传递的是数值而不是本身;然后在引用调用中,实参传递的是实参本身,传递的是实参变量的内存地址,形参变量在接收到地址后,对形参变量的操作也就是对实参变量本身的操作。 -
java形式参数和实际参数
2015-06-16 15:36:07 -
java 方法的形式参数和实际参数的理解
2008-11-28 11:42:00java 方法的实际参数:方法被调用时候,用于接收外部值的参数。形式参数:方法在声明时的参数 -
[Java教程 22] 形式参数是类名的方法的调用方式
2018-08-10 14:05:56转载声明:商业转载请联系作者...形式参数的问题: 基本类型:形式参数的改变不影响实际参数 引用类型:形式参数的改变直接影响实际参数 /* 形式参数的问题: 基本类型:形式参数的改变不影响实际参数 引用类... -
形式参数中的 *&
2020-08-25 15:22:52号都在类型声明中,表示参数是指针类型的引用。先分成左右两部分来看 (int *) ( & p)。 A. 左边部分表示 int 类型的指针p, 应该没有问题。 B. 右边部分&表示是对变量 p的引用,或是 p的别名。加上前面的部分... -
通过数组的形式传递参数
2019-07-07 19:52:26用到数组的形式传递参数的一般都是批量新增,批量删除 还有就是批量判断条件 首先声明个全局变量数组 如下图 然后声明一个构造函数 如下图 构造函数的作用主要是创建字段接收数据 因为最终靠字段的对应来传递数据 ... -
可变个数的形式参数(以String为例)与数组类型的形式参数的区别(宋红康JAVASE)
2021-01-12 17:16:102.2 当调用可变个数形参的方法时,传入的参数个数可以是:0个,1个,2个,。。。 2.3 可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载 2.4 可变个数形参的方法与本类中方法名相同,形参类型也... -
【我的Java笔记】形式参数&返回值
2017-10-26 14:11:36需要什么数据类型,在传参的时候就传什么数据类型(形式参数的改变对实际参数没有影响) 2.引用类型 1)具体类:若形式参数是一个具体的类,则需要创建该类的对象 2)抽象类:若形式参数为抽象类,则需新定义一个... -
c语言指针的形式参数
2017-04-08 20:03:39声明数组 char strings[3]; 形参(指针) char * strings char strings[ ]编译器会把数组表示法转化成指针表示法,仅能用于形参 -
C与C++的细微区别——省略形式参数名
2014-08-23 21:42:401. 当需要使用形式参数的时候,显然,必须给形式参数命名。 2. 当不需要使用形式参数的时候,C与C++有微小差异: —— C不能省略形式参数名, 即使不使用。 —— C++可以省略形式参数名,如果不使用。 ——... -
C++:构造函数默认的参数声明
2019-09-24 23:26:18C++函数的默认参数指的是在函数声明或者定义时给形式参数指定默认值,从而在调用参数时可以少写参数,少掉的参数用默认值代替。LZ的Display()函数的代码看起来似乎是可以有s2和s3两个默认参数,那么此函数的声明写法... -
函数的声明方式,函数的参数,带返回值的函数
2020-10-14 07:29:56(1)、形参:形式上占位,形式参数 (2)、实参:实际传入的参数,arguments 保存实参的类数集合(类数组) 形参与实参数量可以不相等,形参与实参是一个映射关系。 (3)、实参里面传了值的,可以在函数体内修改实参的值,... -
Java方法的本质、形式参数、返回值
2017-04-17 10:20:21形式参数:在方法被调用时用于接收外界输入的数据,不限定个数,但一般不超过5个。 实参:调用方法时实际传入的数据。 返回值:方法在执行完毕后返还给调用它的环境的数据。 返回值类型:事先约定的返回值数据类型,... -
方法的形式参数---(基本数据类型和引用数据类型作为形参)
2018-01-17 21:33:29方法的形式参数: 形参:方法声明时,方法小括号内的参数 实参:调用方法时,实际传入参数的值 规则:java中参数传递机制,值传递...基本类型:形式参数的改变不影响实际参数 引用类型:形式参数的改变直接影响实际参数 - -
函数中变长数组的参数传递以及 在数组参数声明中使用static
2020-02-17 20:45:34变长数组的传递(c99) int n; int a[n];//变长数组见第零章 如果要使用变长参数函数应如下定义 int f(int n,int a[n]) ...使用*的理由是:函数声明时形式参数的名字是可选的,如果第一个参数的定义被忽略了那... -
方法的声明形式和作用
2017-06-19 18:44:33什么是方法 方法就是定义在类中具有特定功能的一段独立的小程序 方法也称为函数。 访问权限修饰符及修饰符 访问权限控制方法被调用的范围 ...形式参数的数据类型 。 形式参数 就是一个变量,用 -
面向对象(方法的形式参数)
2018-03-18 17:12:17局部变量:在方法定义中或者方法声明上 2,在内存中的位置不同 成员变量:在堆内存(成员变量属于对象,对象进堆内存) 局部变量:在栈内存(局部变量属于方法,方法进栈内存) 3,生命周期不同 成员变量:随着... -
mybatis 动态sql中各种参数形式的绑定传递
2020-03-29 21:21:52mybatis 动态sql中各种参数形式的绑定传递 在mybatis的Mapper中 动态sql中各种参数...单个参数的传递声明:parameterType="java.lang.Integer" int delStu(Integer id); <delete id="delStu" parameterType=... -
多维数组作为函数参数的形式
2015-03-24 14:26:14多维数组作为函数参数的形式 今天在看CSAPP的时候,直接敲入了书中的代码片段(P582),没有多加思考,却出现了段错误coredump,然后再纠结:被调用函数是否可以访问到主函数中的数据,函数中的自动变量存在栈中... -
接口和形式参数
2017-07-19 15:23:331.概述:是一系列方法的声明,是一些方法特征的集合.一个接口只有方法的特征没有方法的实现,因此这些特征可以再不同的地方被不同的类实现. 2.特点: 接口里面定义的方法只能是抽象方法,接口中没有构造方法 接口的...
-
JavaWeb之MVC三层架构
-
2009年下半年 网络工程师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
Flutter布局详解
-
数据仓库多维数据模型设计
-
ASHRAE 2012 IT Equipment Thermal Management and Controls_V1.0.pdf
-
CS3100-UNO-源码
-
java 多线程
-
百亿级日志系统架构设计及优化
-
Jenkins软件开发持续集成及自动构建
-
市场-源码
-
什么是SYSML:registered:?
-
PPTP_NNN 服务生产环境实战教程
-
Vue中的动画封装(5-7)
-
产品需求分析神器:KANO模型分析法
-
2013年上半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
PTA 基础编程题目集 7-38 数列求和-加强版 (20 分)
-
2014年上半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
Jsplumb从入门到实战
-
Glasterfs 分布式网络文件系统
-
全局绝热搜索算法的电路模型