C 11 不支援 char 這種寫法嗎?

時間 2021-05-05 20:02:51

1樓:「已登出」

首先說……有任何不加的理由麼……

如果你在其他任何地方需要修改這些值,那麼你不應該這麼寫。

所以這種修改是「平凡」的……嗯……因為他們本來就應該是const,而你本來就應該在所有應該是const的地方加const。

2樓:張智琦

改成char就可以通過編譯,陣列名使用時會自動轉成指標。

用非底層const指標指向乙個常量,這顯然是錯誤的,就算能過編譯也應該看作非法行為。

3樓:查利鵬

這一點標準中寫的很清楚了...

ISO/IEC 14882:2011(E) C.1.7 Clause8.5.2

Change: In C++, when initializing an array of character with a string, the number of characters in the string (including the terminating '\0') must not exceed the number of elements in the array. In C, an array can be initialized with a string even if the array is not large enough to contain the string-terminating '\0'

Example:

char

array[4

]="abcd"

;// valid C, invalid C ++Rationale: When these non-terminated arrays are manipulated by standard string routines, there is potential for major catastrophe.

4樓:Milo Yip

字串字面量 - cppreference.com

C 中,字串字面量擁有型別char,而且可以直接賦值給(非 const )char*。 C++03 也曾允許(但將其設為過時,因為 C++ 中字面量是const)。 C++11 不再允許不帶轉型的這種賦值。

5樓:

C++11 棄用了 char *

應該使用 const char *

不可以將const char 轉換成 char *

iPhone11為什麼不支援螢幕指紋?

鐵弦 蘋果官方發布會上的解釋是指紋安全係數不如面容識別。去年買的iPad 2019air3這種平板還保留了指紋鎖但是不支援面容。個人體驗是指紋解鎖的舒適度遠高於正對螢幕的面容識別,畢竟面容解鎖必須摘下口罩太麻煩了。總之適應指紋還是面容方式還是因人而異吧。 蘋果自己研發了更好的解決方案來替代原有的指紋...

Linux是不是只支援openGL,不支援DirectX啊!?

葛雨 DirectX 是乙個閉源的軟體,所以 linux 並無法合法的拿到其原始碼,想支援它也就不可能,但是原因不在於 linux 而在於 DirectX 的開發方 就是做出windows作業系統的那個微軟 要想讓 linux 支援 DirectX 的話,我們就需要作為消費者共同給微軟施壓,敦促其將...

不支援女兒追星有錯嗎

安和橋 叫您聲阿姨吧,先表明身份,我跟您姑娘差不多大,不追星。我很反感過度追星,但是您姑娘沒過度啊,她買的那些東西都是攢零花攢的,自己沒虧自己吃沒虧自己穿,又沒耽誤學習,這才是正常追星。您扔她那些東西確實過了,不說這是她私人財產,就說那些都是錢啊!這事您確實得道歉 對了,您說您姑娘追的是日本明星?那...