在调用函数中,为何如果没有返回值,图中的p能接受且只能接受调用函数中c的第一次赋值?

图片说明

如图,忍不住好奇试了试去掉return,居然能输出结果,然后我发现调用函数的两条表达式均有执行,但赋值给p的结果只是运算c = a * b后c的值,这是为什么......

结果不可预料,和编译器的编译有关。返回值(对于x86 cpu来说)其实就是函数返回的时候 eax 寄存器的值。具体要看函数生成的机器代码是什么