使用以下构造函数创建对象 student stu1(4, 5);
成员变量:
student::student(int A, int B) {
// A = 4, B = 5
aa = A--; // A--后得到4-1=3赋值给成员变量aa
bb = aa * B; // aa = 3则 3 * 5 = 15;
}
此时打印对象stu1信息为何stu1.aa = 4, stu1.bb = 20?
不是应该是3和15吗?
你应该用--A才行,望采纳
可能是因为创建对象stu1时并没有正确设置成员变量,因此会出现打印出的aa和bb值与预期的不一致。你可以检查一下stu1是否被正确设置了成员变量,如果没有正确设置,可以再进行设置。
++前置、--前置:先操作++、--,再使用
后置++、后置--:先使用,再操作++、--
c语言每个表达式都有值,比如赋值表达式的值为被赋的值。“y=0”的值为0,于是“x=(y=0)”相当于“y=0;x=0”。
“x--”的值为x自减之前的值,所以“y=x--”相当于“y=x;x--”或者“x--;y=x+1”;“--x”的值为x自减之后的值,所以“y=--x”相当于“--x;y=x”。
不能理解为“x--”优先级低于赋值运算,也就是说,不能理解为先赋值后自减。举个反例:“i=i--”如果按照错误理解,相当于“i=i;i--”;而实际上相当于“i--;i=i+1”,i的值不会变。