字符串常量和字符串文字在純C中有什麼區別?在C中的字符串常量和字符串文字之間有什麼區別?
這個問題是相似的另:What's the difference between a string constant and a string literal? ......除了一個是有關的Objective-C(使用的NSString),而不是C.
字符串常量和字符串文字在純C中有什麼區別?在C中的字符串常量和字符串文字之間有什麼區別?
這個問題是相似的另:What's the difference between a string constant and a string literal? ......除了一個是有關的Objective-C(使用的NSString),而不是C.
他們是一個一樣的。僅僅是用來描述字符串的單詞的首選項。
用來描述同樣的想法,第二個字的拼寫?
我會認爲它們是同一個東西 - 同一構造的替代術語。
所以基本上,短語字符串文字或字符串常量可以用來表示同樣的事情? – 2010-10-12 03:24:22
@Dave:是的,這就是我所說的(略有提示) - 以及其他人也說了些什麼。 – 2010-10-12 03:40:02
正如@BenVoigt在其他評論中指出的那樣,文字是一個常量,但常量可能不是文字。 – jweyrich 2013-01-01 05:33:42
const char * strConst;
strConst = "Hello World";
在這個例子中
strConst
是字符串常量。"Hello World"
是一個字符串文字,通常存儲在程序的只讀區域。有趣的分析,但它恐怕並不真正站起來。變量'strConst'實際上是一個變量;它可能會改變爲指向除字符串字面以外的其他字符串,但是您將無法修改通過'strConst'指向的字符串。如果你寫了'const char * const strConst =「Hello World」;',那麼你可能會遇到一個更強大的情況,但是'strConst'仍然是一個指針而不是一個字符串常量。一個指向常量字符串的常量指針,但仍然是一個指針,而不是一個字符串常量。 – 2010-10-12 03:44:26
要點是,文字是實際的文字不通過變量標籤隱藏。但它們都是不變的字符數組。 – mikek3332002 2010-10-12 04:10:23
在C99 Draft from 2007中使用術語刺激文字。 字符串常量根本沒有出現在草稿中。
我發現字符串字面是一個不錯的選擇一詞說起「富」的時候(就像42是文字數,「富」是一個文本字符串)。
感謝您的澄清。 :)讓我感到困惑的是,很多書籍都使用了字符串常量這個術語,但是C99使用了字符串文字,就像您說的那樣。 – 2010-10-12 03:46:35
文字和常數意思是相同的,這是在源代碼中表示固定值的符號。
不正確。 'sizeof(int)'是一個常量,但它不是一個文字。 – 2013-01-01 05:28:22
你的意思是使用哪個*字符串來描述字符串:) – Arun 2010-10-12 05:00:53
並非所有的常量都是文字。 – 2013-01-01 05:26:58