32位系統中的字大小爲4個字節。 so char a ='bcd';已驗證。 4個ASCII字符可以適合32位整數。混淆在char a ='abc';行爲C編程
char a='bcd';
//output is d for this line
printf("%c\n",a);
//output is 'z' when i use *(&a-1) and '�'(is -67 when manipulated)
printf("%c\n",*(&a-1));
現在這裏我只是想知道&a-1 (this is not 'b')
會指向什麼?它是最後的內存地址嗎? 還有一件事是什麼是字符被包裝到int
的順序。
------------------------------------------------------------------------------
| bits : _ _ _ _ _ _ _ 8 _ _ _ _ _ _ _ 16 _ _ _ _ _ _ _ 24 _ _ _ _ _ _ _ 32 |
| order : ? ? ? ? ? ? ? 8 ? ? ? ? ? ? ? 16 ? ? ? ? ? ? ? 24 ? ? ? ? ? ? ? 32 |
------------------------------------------------------------------------------
''bcd''不是一個有效的'char'文字。也許你對像字符串文字這樣的東西感到困惑:''bcd「'。 –
你不能這樣做'char a ='bcd'' – user007
是什麼讓你認爲'char'的大小是'32bit integer'? – deviantfan