第一,你的程序没有错误是正确的,但是并不能说明:引用能重新赋值,很明显,引用时不嫩重新赋值的,只是你的理解有一点误解了!引用的赋值,是指引用初始化时,它的引用对象只能是变量,同时,一旦它指定了哪一个对象的引用后,就不能更改了,但是,可以用这个引用(它指定对象变量的变量)来改变他的对象的纸,从而,达到引用的目的:作为变量对象的别名作用,你的程序就是利用这点对引用对象改变值,x=7;所谓的引用的重新赋值,应该是:int x,y,z;int &x=y;; &x=z; ,这种是对引用类型 x ,改变了它的指定对象,一开始 y 的引用,之后,有重新说明是 z 的引用;这种引用的重新赋值是不允许的;