gpt4 book ai didi

c - ANSI C 中的字符串

转载 作者:行者123 更新时间:2023-12-04 11:44:03 24 4
gpt4 key购买 nike

这是C语言的第三个程序。这个程序是为了演示字符串的概念。

通过研究我知道字符串的末尾有一个空字符 '\0' 来终止字符串。

我写了这段代码:

main()
{
char name[8];

strcpy(name, "Mahmoud");
printf("The contents of name are %s\n", name);
getchar();
}

在这段代码中,我声明了 char 类型的数组以在其中保存字符串。我的名字“Mahmoud”有 7 个字符,我声明的名称大小为 8,即“Mahmoud”为 7,“\0”为 1,它工作正常。

但是在下面的代码中:

main()
{
char name[8];

strcpy(name, "MahmoudEmam");
printf("The contents of name are %s\n", name);
getchar();
}

当我显示名称时,输出是“MahmoudEmam”,尽管名称的大小是 8。

它是怎么做到的?

最佳答案

C 不执行任何数组边界检查(可能使用 C11...)。您正在写超出数组末尾的内容:这是未定义的行为(任何事情都可能发生)。

关于c - ANSI C 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11613728/

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