C语言自增(减)问题

发布时间:2024-11-07 18:07 发布:上海旅游网

问题描述:

main(){

int i=8;

printf("%d\n",++i);

printf("%d\n",--i);

printf("%d\n",i++);

printf("%d\n",i--);

printf("%d\n",-i++);

printf("%d\n",-i--);

}

i的初值为8,第2行i加1后输出故为9;第3行减1后输出故为8;第4行输出i为8之后再加1(为9);第5行输出i为9之后再减1(为8) ;第6行输出-8之后再加1(为9),第7行输出-9之后再减1(为8)。

问题:它究竟是怎样运算的?printf("%d\n",--i);不是8-1=7吗?为什么等于8?printf("%d\n",i--);不是等于7吗?

问题解答:

9
8
8
9
-8
-9

有疑惑百度HI联系
1:++i i=9
2:--i i=8
3:i++ i=8 (取值为8 赋值+1为9)
4:i-- 9 (取值为9 赋值为8)
5: -i++ i=-8 (取值为-8 赋值为-9)
6:-i-- i=-9(取值为-9 赋值为-8)

++i先加一再输出
i++行输出再运算
你家-1+1=2///第6行输出-8之后再加1(为9),
永远要记住
-i--
先-再--但i的值只是--还是正

自增自减运算符是C语言的一大特色。
自增自减运算符在变量左面和在右面效果是截然不同的:在变量左面表示先运算,再读写;在变量右面是先读写再运算。
printf("%d\n",--i);
意思就是变量i先自减,然后再读取i的值,打印输出。i之前为9,自减后再读取其值8,输出。自加类似。

热点新闻