C言語の後置インクリメントについて
Posted: 2016年9月28日(水) 19:47
現在、2007年に出版された本を使ってC言語を学習しているのですが、本に載っているコードが本に書いてあるとおりの結果にならなかったので、原因を教えて下さい。書いてあるコードは
というものです。
本に書いてあるとおりに動かないのは、 です。
本には上記の書き方で と同じような動きをすると書いてあるのですが、実行してみると、一番最初の文字がなくなっています。
これは2007年時点では本の通りに動いていたが現在では仕様が変わって本のとおりには動かなくなっているということなのですか?
そうだとしたら、どのように仕様が変わったのでしょうか?
#include <ctype.h>
#include <stdio.h>
int main(void)
{
char str[80], *p;
printf("文字列を入力してください: ");
gets(str);
p = str;
while(*p)
*p++ = toupper(*p);
printf("%s\n", str);
return 0;
}
本に書いてあるとおりに動かないのは、 です。
本には上記の書き方で と同じような動きをすると書いてあるのですが、実行してみると、一番最初の文字がなくなっています。
これは2007年時点では本の通りに動いていたが現在では仕様が変わって本のとおりには動かなくなっているということなのですか?
そうだとしたら、どのように仕様が変わったのでしょうか?