问题一:实参可以是非引用类型。问题二:引用具体来说是给原变量起了一个别名,不能算是一种数据类型,其中c的数据类型还是int类型,实际使用中c完全等同于b。Set2(b);和Set2(c);两种方式可以说没有任何实际上的不同,一个是传递别名(引用)过去,一个是传递原名称过去。通俗点就像一个老板这样叫员工:(1)李明你过来下;(2)小明你过来下。补充:形参是引用,可以理解为不产生新的变量,给实参取个别名在本函数中使用。专业点说就是定义一个新的变量名,使用和实参完全相同的内存空间。