為什麼 AB 這樣的表示方法是錯誤的?

時間 2021-06-02 01:03:21

1樓:小春

當然不是錯誤的,現在很多編譯器甚至允許用'ABCD'之類的來表示乙個32位整數。

但是你不能把它丟給乙個單純的char裡,因為裝不下。

我遇到的場景是之前做iOS的偏底層音訊開發,Audio Unit中很多用到的引數(比如音訊型別、OSStatus)都是用這種方法表示的。

補張圖。

2樓:

這個是出題老師對 C/C++ 的細節不夠了解造成的用單引號一般認為是字元,一般都是乙個位元組,雙引號是字串,都是合法常量。

'A' 這樣的常量我們常用,'AB' 這樣的常量不常用,部分編譯器是認的,部分會出警告甚至錯誤,這個屬於 C/C++ 的細節,但正常不會去寫 'AB' 這樣的常量,出題老師估計沒去驗證過,認為是錯的了。

其實正常工程裡也不會去這樣寫常量,所以當錯誤的也是可以的。

這題麼,A, C, D 明顯正確,B 有爭議,就只能選它了。

3樓:邱昊宇

並沒有錯,C 和 C++ 都允許這麼用。

CAn ordinary character literal that contains more than one c-char is a multicharacter literal. A multicharacter literal has type int and implementation-defined value.[1]

C++The value of an integer character constant containing more than one character (e.g., 'ab'), or containing a character or escape sequence that does not map to a single-byte execution character, is implementation-defined.

[2]單個字元的版本取值是有固定要求的,而多字元版本的取值由實現決定(比如涉及大小端的問題),所以用得比較少。

比如我這兒 'AB' 就對應 0x4142,換台電腦就可能是 0x4241。

不過正經編譯器一般都會對你居然要用多字元字面量表示驚訝,扔你乙個警告是免不了的,但這不是錯誤。

4樓:神念的經

其實可以。

開門篇:C/C++中的多位元組字元、轉義字元、三字母詞,順帶提及字串常量_CoCosBoy的專欄-CSDN部落格請。

1byte表示多少種狀態為什麼是2 8這樣計算呢

pjb 這是乙個類排列問題,每個位置可以從0或1中任選乙個,所以每個位置有兩種可能,隨著位置數的增加,總的可能數是符合乘法規律性的,所以1位是2種可能,2位是2 2 4種可能,3位是2 2 2 8種可能,以此類推,8位就是8個2相乘即2的8次方種可能了。 趙長青 二進位制有8位,計數可以表示0 25...

為什麼多元函式曲面中法向量的表示方法和梯度一致?

淡藍色回憶 給題主提供幾何層面上的一些理解 假設現在我有乙個多元函式 不難得出,這個多元函式的曲面實際上就是乙個頂部朝下,底部朝上的圓錐體的側面,且頂部正好接觸原點。現在有任意一點 在多元函式曲面上,多元函式的梯度為 該多元函式的梯度是乙個在x y平面的向量,這個向量的含義沿著這個特定的方向變化的Z...

有哪些養生方法後來被證明是錯誤的?

蟲二不二 1 用保溫杯泡茶喝,茶葉長期待在熱水中,裡面的維生素很容易被破壞,釋放出大量鞣酸和茶鹼,這些成分進入胃腸道後會抑制胃腸液的分泌,對胃粘膜也會有較強的刺激作用,會引起胃功能失常和消化不良,而且茶葉中一些成分會和保溫杯的金屬鍍層產生化學反應,如果長期攝入對人體是不利的。2 清宿便排腸毒,其實不...