可能是重复问题:
C字符串中的\0符号代表什么意思?
我是iPhone开发的新手。我想知道在C语言中'\0'
代表什么,以及在Objective-C中对应的是什么。
可能是重复问题:
C字符串中的\0符号代表什么意思?
我是iPhone开发的新手。我想知道在C语言中'\0'
代表什么,以及在Objective-C中对应的是什么。
在C语言中,\0
表示值为零的字符。以下两个表达式等价:
char a = 0;
char b = '\0';
这个转义序列在字符串字面值中更有用,因为它们是字符数组:
char arr[] = "abc\0def\0ghi\0";
(请注意,该数组在末尾有两个零字符,因为字符串常量包含一个隐藏的、隐式的终端零。)
字符字面值和字符串字面值中的'\0'
表示代码为零的字符。在C语言和Objective-C中,这个意义是相同的。
举例来说,在数组初始化器中使用\0
可以构建一个等效于空终止字符串的数组:
char str1[] = "Hello";
char str2[] = {'H', 'e', 'l', 'l', 'o', '\0'};
\ooo
来代表一个ASCII字符,这是使用八进制记数法,其中o
代表最多三个八进制数字。'\xXY'
。不过我不确定这怎么能算是对 '\0'
的“概括”,因为它们代表着不同的概念。 - unwind\0
在八进制表示中代表零。微软关于转义字符的页面(http://msdn.microsoft.com/en-us/library/h21280bw%28v=vs.80%29.aspx)没有特别说明`\0`,而是将其与其他八进制字符字面量一起“捆绑”了。 - Sergey Kalinichenko0
是一个八进制整数常量,是一般情况下可以写作0[0-7]*
的八进制整数常量的特例。虽然 0
是否正式定义为八进制或十进制常量并不会有任何区别,但语法将其归类为八进制,就像\0
转义字符一样 :-) - Steve Jessop'\0'
和整型常量 0
意义完全相同(值相同,类型为int
)。'\0'
表明你计划将这个零用作字符。\0
是零字符。在 C
中,它通常用于表示字符串的终止。当然,它也是一个普通字符,可以像其他字符一样使用,但这种情况很少发生。
C
中内置的字符串操作函数的简单版本要求您的字符串以空字符结尾(或以 \0
结尾)。
'\0'
。我相信你可以使用单次迭代来完成这个操作(我不确定Objective-C
中是否有内置函数可以实现)。 - Ivaylo Strandjev\0
是一个字符字面常量,存储到一个 int
数据类型中,表示值为 0 的字符。char
类型的位数。 - Kerrek SB<limits.h>
中的 CHAR_BIT
怎么样?但这和问题有什么关系吗?我错过了回答中的编辑吗? - Alexey Frunze在C语言中,'\0'表示NULL
字符,至于Objective-C
是否相同就不得而知了。
NULL
是一个指针,\0
则是一个字符。 - Kerrek SBNULL
可以被定义为简单的 0
(C99 明确允许),在这种情况下,与 '\0'
没有区别。 - Alexey Frunze
\O
或\0
,是指空 ASCII 值为0
,那应该用0
还是Zero
? - Grijesh Chauhan\0
。 - Eregrith