【发布时间】:2019-06-10 08:15:29
【问题描述】:
*ptrj++执行后ptrj值不应该是4吗?
int j=3,*ptrj = NULL;
ptrj = &j;
*ptrj++;
printf("%i",*ptrj);
【问题讨论】:
-
这个程序打印的是什么?
-
它打印 0,它还表示 *ptrj++ 的结果是未使用的
-
这就是为什么
*ptr++是不好的风格,不管多么常见。人们一直对这个过去 40 年的 C 故事感到困惑。好的程序员写ptr++在自己的一行,糟糕的程序员写“惯用的”goo,比如*dst++ = *src++。 -
我不明白这里的接近投票。这完全足以重现问题,而且不是简单的印刷错误。
-
@AndrasDeak 嗯,不能反驳这一点。 :)
标签: c pointers postfix-operator