a初始值为1,然后a = a++ 这条语句的意思是先使用a的值1,用完后让a值加1赋给a,那么运行完这句话后a的值为2了,在运行b=a++这句话的时候,先使用2,然后再加1,运行完后a的值为3。a++的意思是先使用值再加1,++a的意思是先加1再使用。
假设a = 5,a=a++和b=a++,最后a、b的值都是5。虽然a++的时候a的值是6,但是“a++”这个表达式的“值”是5,因此将它赋值给a和b之后,a和b的值都会是5;
而“++a”这个表达式的值和++a时a本身的值都是6,所以如果是a=++a或者b=++a,a、b的值都会是6。
怎么可能输出b不是1,如果b=a++,那么 b肯定等于1的。你仔细看看吧。
取消7.9行注释,注释掉6.8行,输出一定是1。再仔细检查一下代码
a ++ 指先赋值再自加; ++a指先自加再赋值