C语言中i++和++i的区别

在C/C++中有一个很坑的东西,其实每一本教材上都有写,但是很容易将他忘记了。

什么是i++

i++大家应该不太陌生,就是自增,把i自增1
即:

int i=1; i++; cout<<i; //此时输出1

但是他们之间最大的区别在于赋值的先后顺序
i++先赋值,再自增

int x,i=1; x=i++; cout<<x<<"\t"<<i; //此时输出为1 2

分析

此代码块中

  1. i原来是等于1,x原来是等于1
  2. 此时把i的值赋值给了x,x为1,i自增,i为1+1即2,此代码形如
x=i;  
i++;  

3.输出这两个数据

什么是++i

++i在单独出现(大多数这些自增用在循环语句中出现)的时候不能反映该问题,也就是有些人从书上抄一段循环语句带有i++和++i找不到任何区别的原因。
同样献给一个例子

int x,i=1;  
x=++i;  
cout<<x<<"\t"<<i;  

分析

此代码块中

  1. i原来是等于1,x原来是等于1
  2. 此时把i先自增,1+1即为2,然后再把i的值(2)赋值给了x,此代码形如

    i++;//x不变,i+1,即为2
    x=i;//x变成了i的数值:2

  3. 输出这两个数据,此时,数据即为上面代码块所示

全文完:)

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇