多くのプログラマーは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.
, .
. , .
, « ».
.
. 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
, . . . . , « ».
, .
. , . - .
, 1998 15 , . , ++ .
2013 , PLC. , . , , . .
; , , « » , — . , - WAT .
, - , 15 , 15 .
:
,