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 .

:


,

Source: https://habr.com/ru/post/J315016/


All Articles