我们知道在C语言中存在自动类型转换和强制类型转换,今天所涉及的便是强制类型转换。乍看题目是(int)x和int(x)的关系,实际可以延伸为强制类型转换和函数存在与否的问题。笔者本着尚浅的C语言基础和在网上搜索到的信息,归纳总结一番,希望与诸君共习之。文章如有错误,敬请指正,感激不尽。
一、(int)x
学习过C语言我们知道这是强制类型转换(以下称“强转”)的语法,首先让我们来温习一下有关它的知识。强转只是将x的值转换成希望的类型,但是x的数据类型是不变的。如下


对于由float转换为int型有个需要特别注意的地方,这个取整并不是四舍五入或其他方式,而是截尾取整。如下


二、int(x)
可能有些同学没有见过此用法,但它的功能和(int)x是一模一样的。如下


那我们不禁思考,int(x)究竟是什么,毕竟我们在学习的时候并未接触过。最大的可能它是一个函数,因为int(x)的样子与调用函数十分相像,并且返回了一个整数。但笔者经过大量查找,最终未得到一个正面的说明,即C语言中存在int()这一函数。但不可否认的是,确确实实存在这一种写法使得我们实现取整的需求。笔者暂时还未找到二者功能上的不同。
若以后笔者学习到关于此二者更多的信息,会及时更新,感谢诸君的阅读。