精华内容
下载资源
问答
  • C语言调用函数时,实参和形参的个数与对应类型应该保持一致,但并不是必须保持一致。 举个简单的例子:定义的形参为int类型,在调用函数传入实参时传入一个float类型的值,则形参把该float自动转为int类型进行操作。...

    答案是否定的
    C语言调用函数时,实参和形参的个数与对应类型应该保持一致,但并不是必须保持一致。
    举个简单的例子:定义的形参为int类型,在调用函数传入实参时传入一个float类型的值,则形参把该float自动转为int类型进行操作。例如实参传入2.1,形参对应的值应为2。

    展开全文
  • 形参和实参的区别

    2021-06-03 09:48:21
    最近在做题的时候被问到了形参和实参的区别,所以在这...形参和实参的功能是传递数据,发生函数调用时,实参的值会传递给形参形参和实参的区别联系 形参变量只有在函数被调用时才会分配内存,调用结束后,立刻

    最近在做题的时候被问到了形参和实参的区别,所以在这具体解释一下。

    首先什么是形参?什么是实参?

    形参(形式参数)

    在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参。
    

    实参(实际参数)

    函数被调用时给出的参数包含了实实在在的数据,会被函数内部的代码使用,所以称为实际参数,简称实参。
    

    形参和实参的功能是传递数据,发生函数调用时,实参的值会传递给形参。

    形参和实参的区别和联系

    1. 形参变量只有在函数被调用时才会分配内存,调用结束后,立刻释放内存,所以形参变量只有在函数内部有效,不能在函数外部使用。

    2. 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的数据,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参,所以应该提前用赋值、输入等办法使实参获得确定值。

    3. 实参和形参在数量上、类型上、顺序上必须严格一致,否则会发生“类型不匹配”的错误。当然,如果能够进行自动类型转换,或者进行了强制类型转换,那么实参类型也可以不同于形参类型。

    4. 函数调用中发生的数据传递是单向的,只能把实参的值传递给形参,而不能把形参的值反向地传递给实参;换句话说,一旦完成数据的传递,实参和形参就再也没有瓜葛了,所以,在函数调用过程中,形参的值发生改变并不会影响实参。

    接下来看几个例子:

    #include<stdio.h>
    
    void swap(int a, int b);//函数声明
    int main()
    {
    	int x = 7, y = 11;
    	printf("实参x、y的初值为:x=%d y=%d\n\n", x, y);
    	swap(x, y);//调用时把下实参x,y的值传递给形参a,b
    	printf("实参x、y交换后的值为:x=%d y=%d\n\n", x, y);
    	//printf("x、y交换后的值为:x=%d y=%d\n\n", a, b);//报错,因为形参只能在调用函数范围内使用,不能再函数外部使用
    	return 0;
    }
    
    //函数定义,这里括号中的a和b就是形参
    void swap(int a, int b)
    {
    	int temp;
    	temp = a;
    	a = b;
    	b = temp;
    	printf("形参a=%d 形参b=%d\n\n", a, b);
    }
    

    输出结果如下:

    在这里插入图片描述

    这个例子说明了实参只是向形参传递其本身的数值,形参变量只是在void swap()这个函数里有效,调用这个函数结束后会立即释放内存,同时形参的值改变不会影响实参。

    而且!!!

    形参和实参可以同名!!!,因为它们之间是相互独立的,互不影响,因为实参在函数外部有效,而形参在函数内部有效。所以这个更能说明形参的改变影响不了实参的值。

    同样上面的例子

    #include<stdio.h>
    
    void swap(int x, int y);//函数声明
    int main()
    {
    	int x = 7, y = 11;
    	printf("实参x、y的初值为:x=%d y=%d\n\n", x, y);
    	swap(x, y);//调用时把下实参x,y的值传递给形参a,b
    	printf("实参x、y交换后的值为:x=%d y=%d\n\n", x, y);
    	//printf("x、y交换后的值为:x=%d y=%d\n\n", x, y);//不报错,但这里输出的还是实参的值
    	return 0;
    }
    
    //函数定义,这里括号中的a和b就是形参
    void swap(int x, int y)
    {
    	int temp;
    	temp = x;
    	x = y;
    	y = temp;
    	printf("形参x=%d 形参y=%d\n\n", x, y);
    }
    

    在这里插入图片描述

    展开全文
  • 实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。 举例 int a=10;//则a为...

    一、实参定义

    实参(argument)——全称为"实际参数"是在调用时传递给函数的参数。 实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。
    举例

    int a=10;//则a为实参
    int b=20;//则b为实参
    

    二、形参定义

    形参(parameter)——全称为"形式参数" 由于它不是实际存在变量,所以又称虚拟变量。是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数.在调用函数时,实参将赋值给形参。因而,必须注意实参的个数,类型应与形参一一对应,并且实参必须要有确定的值。

    int max(int a,int b)//则a,b为形参
    {
    	return (a>b?a:b)
    }
    

    三、形参和实参的区别

    形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。形参和实参的功能是作数据传送。

    1、形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元。因此,形参只有在函数内部有效。 函数调用结束返回主调函数后则不能再使用该形参变量。

    2、实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。

    3、实参和形参在数量上,类型上,顺序上应严格一致, 否则会发生“类型不匹配”的错误。

    4、函数调用中发生的数据传送是单向的。 即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。

    5、指针类型变量内容改变;非指针类型内容不改变。
    当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变。
    而如果函数的参数是指针类型变量,在调用该函数的过程中,传给函数的是实参的地址,在函数体内部使用的也是实参的地址,即使用的就是实参本身。所以在函数体内部可以改变实参的值。

    展开全文
  • 形式参数实际参数函数的...形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。函数的形参和实参具有以下特点:1.形参变量只有在被...

    形式参数和实际参数

    函数的参数分为形参和实参两种。在本小节中,进一步介绍形参、实参的特点和两者的关系。形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。

    函数的形参和实参具有以下特点:

    1.形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。

    2.实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使实参获得确定值。

    3.实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配”的错误。

    4.函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。

    【例】可以说明这个问题。

    ">#include

    int add(int num)

    {

    int i;

    for(i=0;i<100;i++)

    {

    num=num+i;

    }

    printf("num=%d\n",num);

    }

    int main()

    {

    int num;

    printf("输入一个数\n");

    scanf("%d",&num);

    add(num);

    printf("n=%d\n",num);

    return 0;

    }

    本程序中定义了一个函数add,该函数的功能是求num+i的累加值。在主函数中输入num值,并作为实参,在调用时传送给add函数的形参量nuum。在主函数中用printf语句输出一次n值,这个num值是实参num的值。在函数add中也用printf语句输出了一次n值,这个num值是形参最后取得的n值0。从运行情况看,输入num值为6。即实参num的值为6。把此值传给函数add时,形参num的初值也为6,在执行函数过程中,形参num的值变为4956。返回主函数之后,输出实参num的值仍为6。可见实参的值不随形参的变化而变化。

    感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

    展开全文
  • 如果把函数比喻成一台机器,那么参数就是原材料,返回值就是最终产品;从一定程度上讲,函数...形参(形式参数)在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,...
  • C语言中实参和形参类型不匹配

    千次阅读 2021-01-08 11:32:50
    #include <...对于参数类型的不匹配,有一个解释是:函数调用时,将实参的值传递给形参,系统首先会自动隐式地把实参的值的类型转换为形参类型,然后再赋值给形参。 对于缺少被调函数的类型说明,但程序依
  • 如果想要精通学习C语言是比较困难的,除了在平时需要多思考之外,还需要在平时做好日常总结,在学习C语言的时候,有两种不同的参数,一种是形参,一种是实参,二者的作用范围是不同的,形参和实参是有很大区别的,...
  • C#形参实参

    2021-04-12 23:19:56
    C#中的形参和实参 形参(形式参数) 在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参实参(实际参数) 函数被调用时给出的参数...
  • 函数的形参实参

    2021-07-11 23:03:43
    形参和实参的功能是传递数据,发生函数调用时,实参的值会传递给形参形参和实参的区别与联系: 形参变量只有在函数被调用时才会分配内存,调用结束后,立刻释放内存,所以形参变量只有在函数内部有效,不能在...
  • C语言中函数的形参实参是什么?

    千次阅读 2021-03-07 18:29:35
    数据传送是形参和实参的主要功能。在发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。函数的形参和实参具有以下特点:1. 形参变量只有在被调用时才分配内存单元,在...
  • 因此实参也改变 String以及基本数据类型的装箱类引用类型------形参改变,因实参和形参指向的目标实例对象不一致,因此实参不变 Java的参数传递是值传递,而平常我们在Java中所说的“引用传递”,实际上只是将引用...
  • 形参实参

    2021-01-21 12:25:36
    1、形参实参形参也是一个变量,被调用时生成存储空间,调用结束后释放存储空间;形参实参之间的存储空间不同int main(int argc, const char * argv[]) {//主函数可以有形参,也可以没有形参@autoreleasepool {...
  • 函数形参和实参

    2021-05-13 19:40:56
    C语言函数的参数会出现在两个地方,...形参和实参的功能是传递数据,发生函数调用时,实参的值会传递给形参形参和实参的区别联系形参变量只有在函数被调用时才会分配内存,调用结束后,立刻释放内存,所以形参变量
  • 函数实参和函数形参可以同名

    千次阅读 2021-03-07 21:38:37
    (15.0分) 【判断题】函数实参和形参同名时,其数据类型必须相同 (4.0分) 【填空题】19 【其它】编写求阶乘的递归函数 , 并调用它计算表达式 1!+3!+5!+...+n! ( n 为奇数 ) 的值。 (16.0分) 【判断题】在C语言...
  • ● 函数的形参必须是变量,用于接受实参传递 过来的值,形参的使用方法普通变量相同; 而实参可以是常量、变量或表达式,其作用是 把常量、变量或表达式的值传递给形参。 函数调用时,主调函数把实参的值传送给被...
  • 实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。 形参(parameter):...
  • 形参和实参

    2021-12-16 17:35:01
    简单变量只能实现单向的值传递。在调用函数时,通常在主调用函数被调函数之间有数据传递关系。在定义函数时,函数名后面括号中的... 实参和形参类型一致 如果形参是简单变量,实参形参数据传递是按值传递,.
  • 《每天学一点C语言系列》之形参和实参形参和实参的定义以及作用形参和实参在函数调用中的内存问题在简单函数运用中,形参和实参数据类型形参和实参在C语言中的数据传递一、形参和实参的定义以及作用形参:全称为...
  • ● 函数的形参必须是变量,用于接受实参传递 过来的值,形参的使用方法普通变量相同; 而实参可以是常量、变量或表达式,其作用是 把常量、变量或表达式的值传递给形参。 函数调用时,主调函数把实参的值传送给被...
  • 实参和形参数量必须一致 在调用函数,指定的实际参数的数量,必须和形式参数的数量一致(传多传少都不行),否则python解释器会抛出 TypeError 异常,并提示缺少必要的位置参数。 例如: def girth(width , ...
  • C语言参数传递——实参形参

    千次阅读 2021-02-04 18:18:19
    3)形参和实参类型必须一致。 4)对应的实参和形参是两个独立实体,它们之间只有单向的值的传递,即实参的值传递给形参形参的值在函数中不论怎么改变,都不会影响实参。 以上来自 C语言程序设计(第三版)/杨路.
  • 1、第8章 函数,主要内容: 1、函数的定义 2、函数的调用(包括嵌套调用递归调用) 4、局部变量全局变量 5、变量的存储类别 重点: 1)如何定义函数(即如何编写函数) 2)如何调用函数(包括库函数自定义函数),函数的...
  • 返回类型 <方法名>(<形式参数列表>) { //方法的主体 } 例如榨汁机的榨汁功能。根据不同水果榨出不同的汁 定义一个 水果参数 定义一个 汁变量来接收水果的参数 然后返回汁的值 public class ZhaZhiJi { ...
  • 定义: 返回值类型 函数名(形参类型 参数名1....){代码块 返回值}调用: 函数名(实参1,实参2....);四、什么时候用?当需要取封装一段代码实现一个对应的功能时候五、有什么特点?1.返回值类型不定义,默认是int,如果不...
  • 调用函数时,实参形参类型必须一致D. 调用函数时,实参与形更多相关问题堆是一种数据结构,(60)是堆。A.(9,30,60,20,16,18,50,80)B.(9,50,80,30,60,20,16,18)C.(9,16,18,5程序语言的大多数语法现象可用上...
  • 定义: 返回值类型 函数名(形参类型 参数名1….){代码块 返回值}调用: 函数名(实参1,实参2….);四、什么时候用?当需要取封装一段代码实现一个对应的功能时候五、有什么特点?1.返回值类型不定义,默认是int,如果不需要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,897
精华内容 10,758
关键字:

形参和实参数据类型必须一致