Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c+中数组和字符串的索引+;_C++_Arrays_String - Fatal编程技术网

C++ c+中数组和字符串的索引+;

C++ c+中数组和字符串的索引+;,c++,arrays,string,C++,Arrays,String,我想知道字符串和数组的索引从哪里开始。 在制作程序时,我感到很困惑 计算字符串长度时,是否也计算空字符?索引从零开始。索引从零开始。不完全清楚您在问什么 如果您询问字符串和数组是否从索引0开始,那么是的 不完全清楚你在问什么 如果您询问字符串和数组是否从索引0开始,那么是的 在C、C++、java和Python中,数组索引是0,所以它们的范围从0到长度-1。一些面向数学的编程语言(如Matlab)是基于1的。一般来说,“真正的编程语言”倾向于使用基于0的索引;数学/原型/建模语言或其他特定于领域

我想知道字符串和数组的索引从哪里开始。 在制作程序时,我感到很困惑


计算字符串长度时,是否也计算空字符?

索引从零开始。

索引从零开始。

不完全清楚您在问什么

如果您询问字符串和数组是否从索引0开始,那么是的


不完全清楚你在问什么

如果您询问字符串和数组是否从索引0开始,那么是的


在C、C++、java和Python中,数组索引是0,所以它们的范围从0到长度-1。一些面向数学的编程语言(如Matlab)是基于1的。一般来说,“真正的编程语言”倾向于使用基于0的索引;数学/原型/建模语言或其他特定于领域的语言可以使用基于0或基于1的索引,而基于1的通用数学索引


就字符串而言,字符串的长度通常是指字符串中不包括终止NUL字符的字符数,而缓冲区的长度是指整个缓冲区的长度,包括终止NUL。您将找到它并返回字符串中的字符数,不包括终止NUL(即字符串长度)。在C++、C++、java和python中,缓冲区的长度实际上是一个以上。一些面向数学的编程语言(如Matlab)是基于1的。一般来说,“真正的编程语言”倾向于使用基于0的索引;数学/原型/建模语言或其他特定于领域的语言可以使用基于0或基于1的索引,而基于1的通用数学索引


就字符串而言,字符串的长度通常是指字符串中不包括终止NUL字符的字符数,而缓冲区的长度是指整个缓冲区的长度,包括终止NUL。您将找到它并返回字符串中的字符数,不包括终止NUL(即字符串长度)。缓冲区的长度实际上比这个长一倍。

只是说:在问题的末尾使用问号可能会增加可读性;特别是对于非英语母语的人来说。事实上,这个问题包含了一个可能并非有意的限制。如果对数组进行索引,那么实际上索引从0开始。但是如果你在指针上建立索引,你实际上可以做
数组[-1]
,只要指针指向合适的内存。@Schaub,让我们保持简单,好吗?即使使用数组引用不在数组中的内容可能是“合法”的,但这并不意味着这是明智或明智的做法。唯一真正合理的解释是如何访问数组的内容;不知道如何使用它访问任意内存。@Michael,我不知道你想说什么“使用数组引用不在数组中的内容”。我没说过这样的话。我也没有说如何访问“任意内存”。我只是说,如果指针从数组开始有偏移量,可以使用小于0的数字进行索引,比如
inta[2]={0,1};intb=(&a[1])[-1]Schaubs评论实际上包含了一个洞察,为什么编程时索引从零开始。这是因为索引在寻址到数组时用作偏移量,因此零偏移量意味着数组的开始;特别是对于非英语母语的人来说。事实上,这个问题包含了一个可能并非有意的限制。如果对数组进行索引,那么实际上索引从0开始。但是如果你在指针上建立索引,你实际上可以做
数组[-1]
,只要指针指向合适的内存。@Schaub,让我们保持简单,好吗?即使使用数组引用不在数组中的内容可能是“合法”的,但这并不意味着这是明智或明智的做法。唯一真正合理的解释是如何访问数组的内容;不知道如何使用它访问任意内存。@Michael,我不知道你想说什么“使用数组引用不在数组中的内容”。我没说过这样的话。我也没有说如何访问“任意内存”。我只是说,如果指针从数组开始有偏移量,可以使用小于0的数字进行索引,比如
inta[2]={0,1};intb=(&a[1])[-1]Schaubs评论实际上包含了一个洞察,为什么编程时索引从零开始。这是因为索引在寻址到数组时用作偏移量,因此零偏移量意味着数组的开始。然后我还想知道在计算字符串长度时是否也计算空字符。如果您希望以字符*的方式迭代字符串的字符,在这种情况下,“\n”也将在那里。字符数组的长度将等于字符串的长度加上1。然后,我还想知道在计算字符串的字符串长度时是否也计算空字符。如果您希望以字符*的方式遍历字符串的字符,则“\n”也将在那里。字符数组的长度等于字符串的长度加上一。