c语言函数带实参 c语言函数实参和形参类型不匹配

c语言函数中的实参和形参是什么意思啊我老是看不懂谢谢了顾名思义,形参只是为了塑造一个函数的外形.比如max(x,y),这里x和y我们叫它形参.而我们有两个数a=10,b=8,把a和b赋值给max函数的话,就可以比较a和b的最大值,那么a,b在这里就叫做实参,是实际输入的值.
你自己复制的不是很清楚吗,解释的很好.
C语言函数中的形参和实参分别是指什么?形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用 。实参出现在主调函数中,进入被调函数后,实参变量也不能使用 。形参和实参的功能是作数据传送 。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送 。
1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元 。因此,形参只有在函数内部有效 。函数调用结束返回主调函数后则不能再使用该形参变量 。
2.实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量 , 在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参 。因此应预先用赋值,输入等办法使实参获得确定值 。
3.实参和形参在数量上 , 类型上,顺序上应严格一致,否则会发生“类型不匹配”的错误 。
4.函数调用中发生的数据传送是单向的 。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参 。因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化 。
c语言函数的实参形参是一个变量,是在引用的函数中的变量
实参也是一个变量.是在主函数中的变量.
两个变量的使用范围不同.
形参只在子函数中使用,实参可以在主函数中使用.
上面,实参写成100,是说,在形参用100代进去.
而形参只能是一个变量,用来吸收实参传递进来的值,以输出结果.
C语言函数实参问题【c语言函数带实参 c语言函数实参和形参类型不匹配】1.
fun((a,b),(c,d,e));语句中含有2个实参
注意:
(a,b)和(c,d,e)都是逗号表达式 , 
逗号表达式的值取最右值,
所以:
fun((a,b),(c,d,e))可以等价的看成是:fun((b),(e));含有2个实参
2.
fun(a[3],n);语句中有2个实参,也就是a[3]的值,n值
c语言函数的形参与实参的问题?首先要理解一点,数组在做参数传递的过程中会损失数组的长度信息,退化成一个指针
例如你形参写成(char s[10]),或者干脆(char s[]) , 函数只能接收到一个char *
所以:
char dp[n][m]的类型本质上是数组的指针,即char (*)[m],它是指向长度为m的char数组的指针
char **是char *的指针,指针是由数组退化来的,所以一般来说,它原来是一个char *的数组,即 char *ps[m] 。
数组的数组(或数组的指针)和指针的数组(或指针的指针),当然是不同的两个类型 。
至于如何修改,需要你明确你的函数要处理数组的数组,还是指针的数组,再根据情况修改 。
如果是数组的数组 , 那么参数变为:testlength(char (*p)[max],注意这里只能是数或者宏,不能是变量,调用时实参不用变化
如果是指针的数组,那么参数不变,char **dp , 实参变为:char *p[2] = {s1, s2}
c语言函数带实参的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言函数实参和形参类型不匹配、c语言函数带实参的信息别忘了在本站进行查找喔 。

    推荐阅读