gpt4 book ai didi

c - 这是传输结束字符还是其他字符?

转载 作者:行者123 更新时间:2023-12-04 11:30:20 25 4
gpt4 key购买 nike

所以我正在用标准 C 编写字符串基础教程。

我有:

char mystring[] = "HAL";
for (int i = 0; i < 3; i++)
mystring[i] += 1;
for (int k = 0; k < 10; k++)
printf("\n %d", mystring[k]);

哪些输出:

73
66
77
0
4
0
0
0
0
0

现在 mystring[3] = 0 对我来说有意义,因为我读到字符串文字以空字符结尾,所以字节数是 n+1 个字符。我不知道为什么 mystring[4] = 4 虽然。我在 ascii 表中查找 4,它说它是“传输结束”。我对 C 字符串的传输字符结束进行了一些快速的谷歌搜索,但没有找到任何东西。那么有人能告诉我这里发生了什么吗?这是标准的东西吗?我什么时候可以期待它发生?

最佳答案

您正在访问越界内存。你不可能真正知道里面有什么。可能有任何东西,从您找到的 40Thunder Cata demon may come out of your nose .

通过C Standard定义,访问越界内存是Undefined Behavior .


您可能会感兴趣

关于c - 这是传输结束字符还是其他字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32620013/

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