字符串常量和字符串文字在纯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