さーて、久しぶりにSEっぽいネタで行きましょうかね。テーマはズバリ「printf」です。
 printfといえば言わずと知れたどんなC言語の入門書でも一番最初に扱うあの関数です。一番ベタなのは

int main(void){
  printf("Hello, World!");
  return 0;
}

ってやつですね。C言語をちょっとでもかじったことのある人なら「こんなの常識」って思ってしまうかもしれません。しかしながら、このprintf、C言語の数ある標準関数の中でもかなり特殊なものなのです。
 では、まず問題です。「関数printfの戻り値と引数を答えなさい」・・・・・・。答えられますか?
 戻り値はちょっと調べれば簡単にわかります。戻り値の型はintで、出力した文字数を返します。問題は引数です。まず第一引数はchar型へのポインタですね。そして第二引数は第一引数の文字列の中の最初に出てくるフォーマット指定子で指定された型です。第二引数は第一引数の文字列の中の二番目に出てくるフォーマット指定子で指定された型です。第三引数は・・・。
 おわかりでしょうか?つまりprintf関数は第二引数以降の型も数もすべて第一引数に依存するという大変特殊な関数なのです。なんとなく使ってはいたけど、こうやって細かく考えたことはなかった人が多いかと思います。
 では次のプログラムを見てみましょう。

int main(void){
  int i;
  i=1;
  printf("What is the number which has come out to the screen? %d\n", i);
  return 0;
}

 当然画面に表示されるのは

What is the number which has come out to the screen? 1

と表示されます。C言語をやっている人なら誰でもわかります。では次はどうでしょう。

int main(void){
  int j;
  j=1;
  printf("What is the number which has come out to the screen? %n\n", &j);
  return 0;
}

 結構C言語を使っている人でも答えられない人がいるのではないでしょうか?正解は

What is the number which has come out to the screen? 53

と表示されるはずです。%nはその直前までの文字定数の文字数を格納するためのフォーマット指定子です。ちなみにこれをこれを受け取るのはint型へのポインタである必要があります。
 C言語の豆知識、少しは役に立つでしょうか・・・。私も知らない豆知識がまだまだたくさんありそうなので、また発見したらご紹介したいと思います。