任何人都可以告诉我为什么这种情况发生在c语言中

#include  //Compiler version gcc 6.3.0 int main(void) { float a=10; printf("%f"+1,a); return 0; } 

输出 – d

  #include  //Compiler version gcc 6.3.0 int main(void) { float a=10; printf("%f"+36,a); return 0; } 

输出 – p

当我改变+1的值时,它会给出不同的输出….解释我为什么

我不确定你到底想要完成什么。

如果你想做总和,你只需要在逗号之后执行:

由此:

 printf("%f"+36,a); 

对此:

 printf("%f",a+36); 

其他金额相同。

你应该编译所有警告。 我使用了gcc -Wall -Wextra -Werror -pedantic 。 它没有用我的警告编译,因为printf的参数太多了。

当我测试你发布的代码时,它会打印’f’和’A ???’。 我不确定你要做什么,但我相信它与你的浮动如何添加数字以给你一个Ascii角色有关。