你应该回去复习计算机原理double型占8字节,它的二进制是如何存储的int型占4字节,它又是如何存储的c语言比较古老,printf函数里它不会去识别你传入的变量是个什么类型,它只看你传入的参数是%d就按int型4字节输出,传入%lf就按double型8字节输出,后面的变量只提供地址
最后输出改为:printf("%d\n", (int)n / 8.0); 强制类型转换试试。