gpt4 book ai didi

c - 在 printf ( "%d", 5 ); 5存储在内存中吗?

转载 作者:太空宇宙 更新时间:2023-11-04 00:36:59 29 4
gpt4 key购买 nike

#include <stdio.h>
char* func ();
int main ( )
{
char *p;
p=func();
printf("%c",*p);
}
char* func()
{

return "hello";
}

在这里,printf 打印“h”,这意味着创建了一个指向“hello”的指针,并且字符串“hello”存储在内存中。同样,在printf("%d", 5)中,内存中存储的是'5'吗?

最佳答案

你的问题非常依赖于平台,但大多数理智的编译器不应该在代码的任何数据部分存储 5,无论是只读还是其他方式——它应该简单地在printf 调用。

编辑:实际上我只是检查了一下,GCC 做了一些更有趣的事情:

它在 64 位机器上完全避免了堆栈,并且由于可用的数量众多而直接使用寄存器。除了在操作码本身之外,它仍然没有将 5 存储在任何地方。

关于c - 在 printf ( "%d", 5 ); 5存储在内存中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28470295/

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