引用: C++プログラミングの落とし穴 by Steve Oualline
int second(void)
{
static int i = 0;
return (i++);
}
上記のsecond()を3回まわして、1,2,3が出るのを期待していた。結果は0,1,2だった。
何故か?
return (i++);
はiの値を返してから++するから。
i++;は単独行で実行してからreturn i
しましょう、とのこと。
Go to list of users who liked
More than 5 years have passed since last update.
引用: C++プログラミングの落とし穴 by Steve Oualline
int second(void)
{
static int i = 0;
return (i++);
}
上記のsecond()を3回まわして、1,2,3が出るのを期待していた。結果は0,1,2だった。
何故か?
return (i++);
はiの値を返してから++するから。
i++;は単独行で実行してからreturn i
しましょう、とのこと。
Register as a new user and use Qiita more conveniently
Go to list of users who liked