最近我遇到了这个问题,我自己也不能理解。
这三个短语 真的是什么意思?
*ptr++
*++ptr
++*ptr
我联系过 Ritchie 但不幸的是,我无法理解他对这三个手术的描述。
我知道它们都是为了增加指向的指针/值而执行的。我还可以猜测,可能有很多关于优先级和评估顺序的事情。就像一个先递增指针,然后获取指针的内容,一个只是获取内容,然后递增指针等等。正如你所看到的,我对他们的 真的操作没有一个清楚的了解,我想尽快澄清。但是当我有机会把它们应用到程序中时,我真的迷失了。例如:
int main()
{
char *p = "Hello";
while(*p++)
printf("%c",*p);
return 0;
}
给我这个输出:
ello
但我的预期是它将打印 Hello
。
最后一个请求——请举例说明每个表达式在给定代码片段中的工作方式。因为大多数时候,只有一小段理论在我头上飞过。