为什么void fun(const int )和void fun(int)是同一个函数

为什么void fun(const int )和void fun(int)是同一个函数,没有发生重载,一个形参不可变
一个形参可变啊

因为const是限定符不是修饰符。
换一句话说 fun(i) 没法区分调用哪个函数,i作用的的是形参而不是实参。

const 限定符在程序编译之后就被消除了,它只是用于帮助程序员确保不误改常量,程序编译到汇编级别的时候就已经没有const的概念了。