加加减减运算
inti=5;p=(++i)+(++i);为什么p=14,而p=(++i)时,p=6;p=(++i)+(++i)+(++i)时,p=22。这是怎么算出来的?还有p=i+(...
int i=5;
p=(++i)+(++i);
为什么p=14,而p=(++i)时,p=6;p=(++i)+(++i)+(++i)时,p=22。这是怎么算出来的?
还有p=i+(++i)+(++i)和p=(++i)+i+(++i),得出p=19;但是p=(++i)+(++i)+i,p=21。这又是为什么? 展开
p=(++i)+(++i);
为什么p=14,而p=(++i)时,p=6;p=(++i)+(++i)+(++i)时,p=22。这是怎么算出来的?
还有p=i+(++i)+(++i)和p=(++i)+i+(++i),得出p=19;但是p=(++i)+(++i)+i,p=21。这又是为什么? 展开
1个回答
展开全部
k++ 叫 后缀加,属于自增1运算: k=k+1.
k-- 叫 后缀减,属于自减1运算: k=k-1.
++k 叫 前缀加,属于自增1运算: k=k+1.
--k 叫 前缀减,属于自减1运算: k=k-1.
后缀加,后缀减, 在表达式里 用 原来的值 参加 表达式 运算,出了表达式,再自增或自减。
前缀加,前缀减, 先自增或自减, 在表达式里 用 新的值 参加 表达式 运算。
---------
z=(k++)+(k++)+(k++);
变成:
z= (k) + (k) + (k);
k=k+1; k=k+1; k=k+1;
--------
j=1;
q=(++j)+(++j)+(++j);
变成:
j=j+1;j=j+1;j=j+1; (得2,3,4)
q 的计算,结果不统一!看编译器的处理,看编译时是否选优化,选什么优化
如果优化/O1, q=j+j+j; q = 4+4+4 = 12
------
把所有的括号去掉,你要计算什么?
把所有的括号去掉,
z=k+++k+++k++; 可能产生多义性。
把所有的括号去掉,
q=++j+++j+++j; 语法上错误
-----
不提倡使用:
z=(k++)+(k++)+(k++);
q=(++j)+(++j)+(++j);
-----
不使用:
z=k+++k+++k++;
q=++j+++j+++j;
k-- 叫 后缀减,属于自减1运算: k=k-1.
++k 叫 前缀加,属于自增1运算: k=k+1.
--k 叫 前缀减,属于自减1运算: k=k-1.
后缀加,后缀减, 在表达式里 用 原来的值 参加 表达式 运算,出了表达式,再自增或自减。
前缀加,前缀减, 先自增或自减, 在表达式里 用 新的值 参加 表达式 运算。
---------
z=(k++)+(k++)+(k++);
变成:
z= (k) + (k) + (k);
k=k+1; k=k+1; k=k+1;
--------
j=1;
q=(++j)+(++j)+(++j);
变成:
j=j+1;j=j+1;j=j+1; (得2,3,4)
q 的计算,结果不统一!看编译器的处理,看编译时是否选优化,选什么优化
如果优化/O1, q=j+j+j; q = 4+4+4 = 12
------
把所有的括号去掉,你要计算什么?
把所有的括号去掉,
z=k+++k+++k++; 可能产生多义性。
把所有的括号去掉,
q=++j+++j+++j; 语法上错误
-----
不提倡使用:
z=(k++)+(k++)+(k++);
q=(++j)+(++j)+(++j);
-----
不使用:
z=k+++k+++k++;
q=++j+++j+++j;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询