トップ «前の日記(2012-05-30) 最新 次の日記(2012-06-01)» 編集

ヨタの日々

2001|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|12|
2024|01|02|03|04|

2012-05-31 :-(

_ 午前

0520 起床

0830 出勤

0900 検討

_ 午後

1300 検討

1700 残業アワー

_

1940 退勤

2030 飯。牛丼

_ [インクリメント][C]++

RT が流れてきた。

問: int main(void){ char c[]="abc"; int i=0; printf("%c%c",c[i++],c[i++]); return 0; } というプログラムの実行結果はどうなるか。 ( @climpet )

整形

int main(void)
{
  char c[]="abc";
  int i=0;
  printf("%c%c",c[i++],c[i++]);
  return 0;
}

++ は処理系依存である、というのをはるか昔にどこかで読んだような気がしたので、印字されるのは ab か又は処理系によると予想。

実行 1

  • Microsoft Windows 7 64bit
  • cygwin gcc 4.5.3
% ./a.exe
ba

実行 2

  • Microsoft Windows 7 64bit
  • Microsoft Visual Studio C++ 2010 Express
% pointer0.exe
aa

実行 3

  • NetBSD/i386
  • gcc 4.1.3
% ./a.out
ba

結果

処理系依存

参考

tsutsui さんから流れてきた。

kouno.jp/home/c_faq/c3. … 「自分の使っているコンパイラがそのような副作用を持つコードをどう実装しているか調べるようなこともしてはいけない(多くのCの教科書に載っている愚かな練習問題であるが、お薦めはしない)」 ( @tsutsuii )

C FAQ 3

読みましょう。