为什么C中的绝对值函数不接受const输入?

问题描述 投票:2回答:1

在C中,绝对值函数(接受浮点数)的原型为

 float fabsf( float );

为什么这个原型不接受一个常数,像这样:

 float fabsf( float const );

fabsf不会更改输入的值,对吗?

如果我有一个接受输入并调用fabsf的函数,是否必须避免将输入指定为const?

在这种情况下处理const正确性的适当方法是什么?

c const
1个回答
1
投票

C使用按值传递。函数参数的值是您提供的参数的副本。

复制const和non-const float都可以,结果是non-const float。

类似于作业:

const float f = 5.5f;
float g = f;   // OK

实际上,语言指定表达式的值永远不能为const,即,从变量中读取值时,即使该变量为,该值也不是const

© www.soinside.com 2019 - 2024. All rights reserved.