Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.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++ - Fatal编程技术网

C++ 对字符数组感到困惑

C++ 对字符数组感到困惑,c++,C++,我试图更多地理解字符数组 使用以下代码 int main() { char test[] = "hello"; char here[4] = "ola"; char bon[] = { 'w','o','r','d' }; char word[4] = { 'z','f','f','z' }; std::cout << test << std::endl; std::cout << here <<

我试图更多地理解字符数组 使用以下代码

int main() {
    char test[] = "hello";
    char here[4] = "ola";
    char bon[] = { 'w','o','r','d' };
    char word[4] = { 'z','f','f','z' };

    std::cout << test << std::endl;
    std::cout << here << std::endl;
    std::cout << bon << std::endl;
    std::cout << word << std::endl;
    return 0;
}
为什么它没有给我这个输出

hello
ola
word
zffz

问题是在前两条语句中隐式添加了空终止符(
'\0'
),但在后两条语句中没有显式设置数组元素。当您试图打印出数组时,这会导致未定义的行为(这意味着输出可能会有所不同,或者应用程序可能会崩溃,具体取决于编译器)。
问题是在前两条语句中隐式添加了空终止符(
'\0'
),但在后两条语句中没有显式设置数组元素。当您试图打印出数组时,这会导致未定义的行为(这意味着输出可能会有所不同,或者应用程序可能会崩溃,具体取决于编译器)。
此处结尾缺少一个
'\0'
字符:
字符bon[]={'w','o','r','d'}
和“word”相同。如果将字符串传递给输出例程,则例程不知道该字符串的长度。粗略地说:它会一直打印,直到到达第一个
'\0'
字符。这里的结尾缺少一个
'\0'
字符:
char bon[]={'w','o','r','d'
和“word”相同。如果将字符串传递给输出例程,则例程不知道该字符串的长度。粗略地说:它一直打印到第一个
'\0'
字符。@RudyVelthuis是的,我知道,正如你所看到的,我在回答的第一句话中已经说过。我不是有意告诉你的。我只是忘记了正确的地址。我的意思是为了这个手术。对不起。@RudyVelthuis是的,我知道,正如你所看到的,我在回答的第一句话中已经说过。我不是有意告诉你的。我只是忘记了正确的地址。我是说这次行动的,对不起。
hello
ola
word
zffz
char bon[] = { 'w','o','r','d','\0' };
char word[5] = { 'z','f','f','z','\0' };