计算机C语言中,K++与-k++有什么区别??

由于是初学者,请详细叙述,最好能举个比较简明的例子说明一下。

K++ 和 -K++ 只是数值符号有区别,++操作在这里是一样的。

不过++操作有个特别的地方需要注意,放在变量前后的效果是有点不同,特别用在表达式里面的时候。

k++ 和 ++k 不一样,看下面的例子:

int i=4;
printf("\ni=%d\n", i);
printf("\n4-i++=%d\n", 4-i++);
printf("\ni=%d\n", i);
i=4;
printf("\ni=%d\n", i);
printf("\n4-++i=%d", 4-++i);
printf("\ni=%d\n", i);
i=4;
printf("\ni=%d\n", i);
printf("\n-i++=%d\n", -i++);
printf("\ni=%d\n", i);
i=4;
printf("\ni=%d\n", i);
printf("\n-++i=%d\n", -++i);
printf("\ni=%d\n", i);
-------------------------------------------------------------------
输出结果是:

i=4
4-i++=0
i=5
-------------------
i=4
4-++i=-1
i=5
-------------------
i=4
-i++=-4
i=5
-------------------
i=4
-++i=-5
i=5

也就是说,当用在表达式里面的时候,++在前和在后的运算次序是不一样的,
++在前则先对变量+1,然后再参与表达式的运算;++在后则先参与表达式运算,然后才对变量+1。

对于初学者,或者专家也好,不建议使用太复杂的表达式,代码的可读性也非常重要。
复杂的表达式并不会生成更快的编译代码,反而会使别人或自己看不懂代码表达的意思,
想想一年或几年后,你自己再来看这些代码还看得明白吗?
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-10-01
一般时候,k++和++k是没有区别的(都是k+=1)
但在数组里,
k++是用完再加
++k是加完再用
如:
int a[10],k=0;
a[k++]=1;
那么k=1,a[0]=1,a[1]=0

int a[10],k=0;
a[++k]=1;
时,k=1,a[0]=0,a[1]=1
第2个回答  2011-05-23
其实就是多了个负号而已、没什么区别呀!
如果k=1,执行前面的那句会输出1,执行后面的那一句会输出-1.
第3个回答  2011-05-24
int k=4;
int j;
j=k++; //j=4, k=5

k=4;
j=-k++; //j=-4,k=5