Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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++_Arrays_String_Char - Fatal编程技术网

C++ 为什么不';字符数组打印的单位化索引?

C++ 为什么不';字符数组打印的单位化索引?,c++,arrays,string,char,C++,Arrays,String,Char,为什么char数组的其余部分没有打印出来?给定以下代码: char charArray[10]; charArray[0] = 'a'; charArray[1] = 'b'; charArray[2] = 'c'; charArray[3] = 'd'; string str1 = charArray + string("string") ; cout << str1; 输出:abcstring 我知道其余数组索引中的值是单位化的,但仍然有值。所以我希望随机字符出现在

为什么
char
数组的其余部分没有打印出来?给定以下代码:

char charArray[10];     
charArray[0] = 'a';
charArray[1] = 'b';
charArray[2] = 'c';
charArray[3] = 'd';

string str1 = charArray + string("string") ;
cout << str1;
输出:
abcstring

我知道其余数组索引中的值是单位化的,但仍然有值。所以我希望随机字符出现在那里,但是我没有看到任何表示未初始化值的奇怪字符

<> p> <强> >为什么<>代码> char 数组打印出来?< /强>(更深入地回答更多硬内核的内容是值得欢迎的,并且非常感谢,因为我正想把我的C++知识扩展到一个专家的知识)。p> 当您在该上下文中使用字符数组时

string str1 = charArray + string("string")
数组被解释为C样式的字符串

C样式字符串以零字符值结尾。在您的例子中,第一个未初始化的数组元素(即第一个实验中的
charArray[4]
)碰巧是零(假设这是一个本地数组)。
charArray[4]
中的意外零充当字符串的零终止符,因此您的
charArray
恰好代表有效的C字符串
“abcd”
。这正是你所看到的

在第二个实验中也发生了同样的事情。

纯粹是运气

当您在该上下文中使用字符数组时

string str1 = charArray + string("string")
数组被解释为C样式的字符串

C样式字符串以零字符值结尾。在您的例子中,第一个未初始化的数组元素(即第一个实验中的
charArray[4]
)碰巧是零(假设这是一个本地数组)。
charArray[4]
中的意外零充当字符串的零终止符,因此您的
charArray
恰好代表有效的C字符串
“abcd”
。这正是你所看到的

在第二个实验中也发生了同样的事情。

纯粹是运气

当您在该上下文中使用字符数组时

string str1 = charArray + string("string")
数组被解释为C样式的字符串

C样式字符串以零字符值结尾。在您的例子中,第一个未初始化的数组元素(即第一个实验中的
charArray[4]
)碰巧是零(假设这是一个本地数组)。
charArray[4]
中的意外零充当字符串的零终止符,因此您的
charArray
恰好代表有效的C字符串
“abcd”
。这正是你所看到的

在第二个实验中也发生了同样的事情。

纯粹是运气

当您在该上下文中使用字符数组时

string str1 = charArray + string("string")
数组被解释为C样式的字符串

C样式字符串以零字符值结尾。在您的例子中,第一个未初始化的数组元素(即第一个实验中的
charArray[4]
)碰巧是零(假设这是一个本地数组)。
charArray[4]
中的意外零充当字符串的零终止符,因此您的
charArray
恰好代表有效的C字符串
“abcd”
。这正是你所看到的



在第二个实验中也发生了同样的事情。

因为未定义的行为?该数组的元素最初很可能为零(通过“随机运气”),这意味着它就像一个以空结尾的字符串“abc”或“abcd”。因为未定义的行为?该数组的元素最初很可能为零(通过“随机运气”),这意味着它就像一个以空结尾的字符串“abc”或“abcd”。因为未定义的行为?该数组的元素最初很可能为零(通过“随机运气”),这意味着它就像一个以空结尾的字符串“abc”或“abcd”。因为未定义的行为?该数组的元素最初很可能为零(通过“随机运气”),这意味着它类似于以null结尾的字符串“abc”或“abcd”。当我们说零字符值时,这是否意味着与null值相同或未初始化?如果是这样,程序如何知道该值未初始化?零表示0,即,就好像你做了
charArray[4]=0
。如果
charArray
是一个静态变量而不是局部变量,它会自动初始化为所有零值。噢。该死的。谢谢。:)@brain56:无法区分C中未初始化的对象和初始化的对象。“未初始化值”是一个经常发生的不可预测值。在您的例子中,不可预测的值恰好是
0
。一个普通的,规则的零,就像任何其他零一样。当我们说零字符值时,这意味着与空值或未初始化相同吗?如果是这样,程序如何知道该值未初始化?零表示0,即,就好像你做了
charArray[4]=0
。如果
charArray
是一个静态变量而不是局部变量,它会自动初始化为所有零值。噢。该死的。谢谢。:)@brain56:无法区分C中未初始化的对象和初始化的对象。“未初始化值”是一个经常发生的不可预测值。在您的例子中,不可预测的值恰好是
0
。一个普通的,规则的零,就像任何其他零一样。当我们说零字符值时,这意味着与空值或未初始化相同吗?如果是这样,程序如何知道该值未初始化?零表示0,即,就好像你做了
charArray[4]=0
。如果
charArray
是一个静态变量而不是局部变量,它会自动初始化为所有零值。噢。该死的。谢谢。:)@brain56:无法区分C中未初始化的对象和初始化的对象。“未初始化值”是一个经常发生的不可预测值。在您的例子中,不可预测的值恰好是
0
。一个正常的,规则的零,就像任何其他零一样。当我们说零字符值时,这对我来说是吗