c语言函数的实参不能是,函数的实参不能是什么
C语言中实参可以是任何类型吗?
实参类型可以是任何类型,如变量、常量、表达式都可以
成都创新互联公司专注于乳山企业网站建设,响应式网站建设,商城网站制作。乳山网站建设公司,为乳山等地区提供建站服务。全流程按需定制,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务
但形参不可以,他只可以是变量。函数传递参数时,形参和实参的类型必须一致,否则编译通不过。
C语言中的实参可以是任意类型的吗?形参可以是常量、变量或表达式吗?
实参可以是常量、变量、表达式、函数等任意类型,形参只能是变量,在被定义的函数中,必须指定形参的类型。
形式参数(形参):定义函数名和函数体时需要用的参数,目的是用来接收调用该函数时传递的参数。
实际参数(实参):传递给被调用函数的值。
通俗的来讲,形参就像物理计算中的公式中的符号,比如Ω,A,V等,而实参就是在计算中的实际的数值。调用过程就是实现形参与实参的结合,把实参的值通过调用传递给形参,相当于把具体的值代入公式进行计算。
扩展资料:
两者的区别:
区别1
形参只能是变量,在被定义的函数中,必须指定形参的类型。
实参可以是常量、变量、表达式、函数等,
区别2
形参:没有确定的值
实参:无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。
区别3
形参变量在未出现函数调用时,并不占用内存,只在调用时才占用。调用结束后,将释放内存。
开辟内存存储数据
C语言函数中的形参和实参分别是指什么?
形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。 形参和实参的功能是作数据传送。发生函数调用时, 主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。
1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元。因此,形参只有在函数内部有效。 函数调用结束返回主调函数后则不能再使用该形参变量。
2.实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。
3.实参和形参在数量上,类型上,顺序上应严格一致, 否则会发生“类型不匹配”的错误。
4.函数调用中发生的数据传送是单向的。 即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。
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语言函数的实参不能是,函数的实参不能是什么
文章转载:http://scjbc.cn/article/dsidpoo.html