C语言中 k= --j; 什么意思

2024-11-06 07:08:01
推荐回答(5个)
回答(1):

k= --j;等价于j=j-1,之后再把j的值赋给k;
列:main()
{int j=6,k;
printf("%d\n",k=--j);
}
输出5
(其实这里考到了自加与赋值运算以及他们的优先级
优先级:自加运算符>赋值运算符。

回答(2):

假设:
int j ,k;
j=5;k=--j;

--j的意思,就是先使用,再赋值。(先减,再赋)
也就是先将5自减1,再把它赋给k. (也就是 k=4,j=4)

注意:j--与--j的区别:(j=5)
j--是先赋值,再使用。(先赋,再减)
也就是将j先赋值给k,然后j再自减1 (也就是 k=5,j=4)

同理可得,++j与j++的区别。

回答(3):

注意 前缀自减的顺序

k=--j; 等价于 --j;
k=j; 两步
如果是
k=j--; 等价于 k=j;
j--;
单独的 j--; 等价于 --j;
但是当自减自加用于 赋值,比较,算术表达式 的时候,注意取值与自减的顺序

回答(4):

分成两部分理解:
1)j=j-1;
2)k=j;
也就是先将j自减运算(减1)然后赋值给k

回答(5):

先将j减一,再将j的值赋给k。