gpt4 book ai didi

c - 为什么这个 printf 语句没有产生书本示例中所示的输出?

转载 作者:太空狗 更新时间:2023-10-29 15:47:04 25 4
gpt4 key购买 nike

int j=5,k=9;
printf("%d...%d");

这个问题在一本书里。给定输出:5 9但是当我尝试这个时我得到:垃圾值,请向我解释一下。书上解释说printf取程序前两次赋值的值

最佳答案

你的书作者依赖于愚蠢的行为。 (我不知道它是 undefined 还是 implementation defined 还是 just plain stupid。)

当调用 printf(3) 时,它们依赖于堆栈分配的 jk 变量神奇地存在。因为 printf(3) 将使用其格式字符串 来确定要读取多少 对象的哪些类型,它会神奇地将位于堆栈上的jk 变量解释为参数printf( 3)好像它们是有意传递给它的

这太依赖“幕后如何运作”的魔力了。除非这个代码块被“这段代码可能会告诉你......”和“永远不要做这种愚蠢的事情......”包围,否则这本书可能不值得进一步阅读。

关于c - 为什么这个 printf 语句没有产生书本示例中所示的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5610612/

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