c语言中函数形参只能是 在c函数中形参可以是变量常量或表达式

c语言中,形参可以是常量 , 变量或表达式,这句话为什么是错的?形参不是只要有确切的值就行了吗?说好的是形参 。不是实参 。实参就是对的 。我觉得楼主可能没有了解什么是形参 。当然 。这个可以不用去理解也不影响代码质量的 。但是 。理论就是这么说的 。最好看懂 。
形参只能是变量,在被定义的函数中,必须指定形参的类型 。
没有确定的值
形参变量在未出现函数调用时 , 并不占用内存 , 只在调用时才占用 。调用结束后,将释放内存 。
形参的特点就是黑体字那几个了
你就顺便理解一下实参吧
实参可以是常量、变量、表达式、函数等
无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参 。因此应预先用赋值,输入等办法使实参获得确定值 。
开辟内存存储数据
平时c语言 , 直接int一个变量 。不赋值 。一样是有值的 。那是内存在上次使用时候留下来的垃圾值 。所以是个不确定的值 。
希望我的回答对你有帮助
在c语言中,指针作为函数参数,形参只能传递值,而不能传递地址 , 是怎么回事?C语言中,函数参数只能传值 。与传值对应的是传引用 , C语言不支持函数参数传引用,C语言才支持 。
C传引用函数:
void foo(int a) { a = 3; }
假如a = 2 , 执行foo(a)后,a = 3 。
---
C语言可以模拟传引用,方法是通过指针来实现:
void foo2(int* ap) { *ap = 3; }
假如a = 2 , 执行foo2(a)后,a = 3
foo2(a)调用本质上仍然是传值,只不过传递的是指针,指针即是地址,地址本质上是一个无符号整数 。
如果:
void foo3(int b) { b = 3; }
假如a = 2,执行foo3(a)后,a = 2 。这是因为foo3(a)调用过程中 , a值传给形参b , 修改b的值与实参a无关 。
注意到,foo3(a)与上述foo(a)传引用的调用是形式一样的 。
既然C语言通过指针可以实现传引用调用,为什么C还要引入引用这个特性呢?这是因为C引入的很多新特性需借助引用来实现,比如,拷贝构造函数等等 。
在C语言中 , 函数的形参只能用auto或register来说明吗?首先,第一个是不正确的 。每个的具体说明如下:
第一,函数的形参不仅可以用auto或者register来说明 , 因为函数的形参还可以用const来定义一个其值不可变的常量形参,还可以在main函数前定义一个结构体,然后用结构体名来定义函数的形参 。
第二,外部变量的隐含类别是外部存储类别,即extern 。
第三 , 函数中的变量赋初值则每次调用都将会赋初值,如果想在第一次调用是赋一次初值,而在其后的调用过程中在第一次调用的基础上继续进行运算 , 则可以定义static静态变量并且直接赋予初值 。
第四,在调用函数时,实参和对应的形参在类型上只需赋值兼容 。因为在计算机内部,像字符型或者各类符号(中文,法文,德文等等)都是以ASCII码值的形式存在,因此当对字符进行操作的时候同样可以通过四则运算来达成有关目的 , 只需知道对应的码值就可以了,所以只需赋值兼容都可以操作 。
在c语言中形参必须是常量 这句话对吗?错误 。C语言规定,形参可以是常量、变量或表达式,但要求形参必须有确定的值,并且形参必须与传值给它的实参的类型相一致 。
【c语言中函数形参只能是 在c函数中形参可以是变量常量或表达式】c语言中函数形参只能是的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于在c函数中形参可以是变量常量或表达式、c语言中函数形参只能是的信息别忘了在本站进行查找喔 。

    推荐阅读