我正在研究 c 谜题,并遇到了这个问题。 在这里,一个 at printf 语句指针会递增一次,所以我认为它将指向随机数! 但我不明白为什么输出是25? 谁能帮我理解吗? 提前非常感谢;)
void main()
{
int const * p=5;
printf("%d",++(*p));
}
答案:25
最佳答案
您指向随机的一段内存(地址 5)。然后,您可以增加存储在那里的任何内容,并打印结果。这是未定义的行为;你的程序可以做任何事情。
更新:实际上,这段代码甚至不应该编译。您已将其声明为指向 const 的指针,因此编译器不应允许您递增。您使用什么编译器?
关于c - 为什么打印的值是25?这不应该是一个内存位置值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9409621/