gpt4 book ai didi

c - 为什么 printf 打印一个未作为参数传递的变量?

转载 作者:行者123 更新时间:2023-11-30 20:43:56 24 4
gpt4 key购买 nike

好久没写C代码了,生疏了。有人知道为什么以下代码将“rtyaze”打印到标准输出吗?我期待着“rty”。

#include <stdio.h>

int main (void) {
char s[] = "aze";
char ss[][3] = { "rty" };
printf("%s\n", ss[0]);
}

最佳答案

通过使 ss 第一个元素处的字符串具有 3 个字符,您可以消除空终止符。

因此 printf 继续执行,直到找到空终止符。碰巧,您的另一个字符串一定是紧接在第一个字符串之后放置在内存中的。

如果将 ss[][3] 中的 3 更改为 4,您应该会得到预期的行为。

关于c - 为什么 printf 打印一个未作为参数传递的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56759637/

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