gpt4 book ai didi

c - 如何直接操作输出流? (是 : why it's not increment value of increment operator in case of assignment in c? )

转载 作者:行者123 更新时间:2023-11-30 18:32:07 27 4
gpt4 key购买 nike

我修复了 this question 中的代码这样它就可以编译:

#define text ();
#define return &argv;return
int *** emphasized () {
static int x, *argv = &x, **xpp = &argv;
puts("\r10 11 11");
return &xpp;
}
int main (int argc, char *argv[]) {
int a;
int n = 10;
printf("%d",n);
n++;
printf("%d",n);
a = n++;
printf("%d",n);***emphasized text***
return 0;
}

在最初的问题中,提问者说:

Output= 10 11 11 why it's not increment value of n in second increment operator

这就是为什么emphasized()做了一些有趣的事情。我试图想出一种方法,采用提问者的文字代码,使其按照他/她所说的那样进行。为此,我将***强调文本***视为源代码的一部分。

的问题是:如何更改 emphasized() 以便在不调用任何输出函数的情况下呈现 10 11 11 输出?我希望观察一种方法,将 printf() 呈现的输出更改为标准输出,以添加空格,但弄乱最后一个数字。

由于这个问题带有混淆标签,如果解决方案涉及添加更多#define,那就试试吧。

最佳答案

n 递增到 12,但由于 n 从未被打印,因此其值并不重要。

通过预处理器运行这些废话,你就会明白为什么。

有一个#define可以使所有printf语句无效。

实际输出来自于emphasized中的puts

关于c - 如何直接操作输出流? (是 : why it's not increment value of increment operator in case of assignment in c? ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16611911/

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