gpt4 book ai didi

c++ - C++ 中的数组在 for 循环中

转载 作者:搜寻专家 更新时间:2023-10-31 01:57:27 24 4
gpt4 key购买 nike

当我在 for 循环中编写 array[i] = '\0' 时发生了什么?

char arrayPin[256];

for(int i = 0; i<256; i++)
{
arrayPin[i] = '\0';
}

最佳答案

程序试图访问 <base address of 'array'> + (<sizeof array element> * 'i') 位置的内存并将值 0 分配给它(二进制 0,而不是字符“0”)。此操作可能成功也可能不成功,甚至可能使应用程序崩溃,具体取决于“array”和“i”的状态。

如果你的数组类型是char*char[]并且赋值操作成功,然后在位置 'i' 插入二进制 0 将截断该位置的字符串,当它与理解 C 风格字符串的东西一起使用时(printf() 是一个例子)。

因此,如果您在 for 中执行此操作遍历字符串的整个长度,您将清除字符串中的所有现有数据,并导致处理 C 风格字符串的事物将其解释为空/零长度字符串。

关于c++ - C++ 中的数组在 for 循环中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5629014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com