gpt4 book ai didi

c - 为什么在 C 中我的字符串后打印数字 '7'?

转载 作者:行者123 更新时间:2023-12-02 05:28:33 24 4
gpt4 key购买 nike

我需要定义数组中的字符并打印字符串...但它始终打印为 string7(在本例中为 test7)...我在这里做错了什么?

#include <stdio.h>
int main() {
char a[]={'t','e','s','t'};
printf("%s\n",a);
return 0;
}

最佳答案

Why this behavior?

因为您没有\0 终止您的数组,所以您得到的是未定义的行为

What possibly happens behind the scenes ?

printf 尝试打印字符串,直到遇到 \0 并且在您的情况下,字符串从未被 \0 终止,因此它随机打印直到遇到 \0
请注意,超出已分配内存范围的读取是未定义的行为,因此从技术上讲这是一个 UB。

What you need to do to solve the problem?

你需要:

char a[]={'t','e','s','t',`\0`};

char a[]="test";

关于c - 为什么在 C 中我的字符串后打印数字 '7'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14534098/

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