为什么这个结果为57,57,啊?
#include <stdio.h>
int convert(int* data)
{
return (*data) ++;
}
main( )
{
int data = 56;
convert(&data);
printf("%d,", data);
data = convert(&data);
printf("%d,\n", data);
}
第一次输出的不应该是56吗?第二次是57吗?(*data) ++这个到底是怎么输出的,如果说第一次就+1的话为什么第二次不+1啊?求大神教一下
convert(&data);在第一次输出前就调用了,让data++了。
第二次也++了,但是又被返回值改写回了原来的值
data = convert(&data);修改为
convert(&data);
就能看到58