Cを知っていると思いますか?

画像






多くのプログラマーはSを知っていると主張します。まあ、これは最もよく知られた構文を持ち、44年間存在し、あいまいな関数で散らかっていません。 彼はシンプルです!



つまり、Sを知っていると言うのは簡単です。おそらく研究所で、または途中でそれを勉強しました。おそらく、それを使用した経験があるでしょう。知ることはあまりありません。 実はたくさん。 Cはそれほど単純ではありません。



簡単だと思うなら、このテストを受けてください。 質問は5つだけです。 各質問は基本的に同じです。戻り値はどうなりますか?



この出版物は、 電子アーカイブおよび文書管理システムを開発しソフトウェアとハ​​ードを企業向けに統合するエジソンによってサポートされています。



各質問には4つの可能な答えがあり、そのうち1つだけが正しいです。



1



struct S{
  int i;
  char c;
} s;

main(){
  return sizeof(*(&s));
}
      
      





. 4

. 5

. 8

D.



2



main(){
  char a = 0;
  short int b = 0;
  return sizeof(b) == sizeof(a+b);
}
      
      





. 0

. 1

. 2

D.



3



main(){
  char a = ‘ ‘ * 13;
  return a;
}

      
      





. 416

. 160

. -96

D.



4



main()
{
  int i = 16;
  return (((((i >= i) << i) >> i) <= i));
}

      
      





. 0

. 1

. 16

D.



5




main(){
  int i = 0;
  return i++ + ++i;
}

      
      





. 1

. 2

. 3

D.



, .







image

. , .





, « ».



.



. C RAM , . 5 , 8. 16. 6. . GCC aligned packed , . C « ».



integer promotion. , short int



, short int



. . int



. - . , .



, , . short int



int



, . . « ».



. , integer char



. , . , char



. 6 ( ?) 32 . , « ».



, , , , , int



. 16 , . , , .



« ».



— . +



, i++



++i



, . . . . , « ».



image

, .



. , . - .



, 1998 15 , . , ++ .



2013 , PLC. , . , , . .



; , , « » , — . , - WAT .



, - , 15 , 15 .



:





,



All Articles