2009-08-25 164 views
1

打扰我的无知,但我不知道这句话的含义。我有几个问题:'string is not terminated'是什么意思?

  1. 有 之间的任何差别“字符串没有结束”和 “的字符串不是空终止”?
  2. 这是什么?
  3. 非终止字符串是怎样的?

谢谢!

+1

您能否给出更多的上下文?哪里/谁/什么说一个字符串是“未终止”?这是一条错误消息吗? – hbw 2009-08-25 12:25:03

+2

用什么语言得到错误? – 2009-08-25 12:25:12

+3

什么语言?你在哪里看到问题?也许给我们一个消毒代码片段? – geowa4 2009-08-25 12:26:15

回答

11

这取决于上下文。当有人谈论一个以空字符结尾的字符串时,他们通常会谈论一个C风格的字符串,它只是一个字符数组,后面跟着一个0字节,有时候被称为\ 0或null。

这与字符串数据类型相反,它们将长度存储在开始位置,然后是字符数组。在这种情况下,字符串“哟!”可表示为:

Length Char0 Char1 Char2 
------ ----- ----- ----- 
    3  y  o  ! 

当有人关于“不被终止”,他们通常谈论的不是由两套引号包围的字符串,字符串会谈 - 这是种错误的编译器会给你。这是完全不同的事情。

1

“字符串未终止”通常意味着您缺少字符串的结束报价。