所以,我发现了一段时间以来一直困扰着我的东西。我对C语言还很陌生。C中指针的奇怪互动
,我讲的代码是在这里,它的strcmp的实现:http://pastebin.com/VeHGm8sD
有关此计划的奇怪的是,如果你在线路12分别为13
*first_string++; // should increment value of char ??
*second_string++;
改变
first_string++; // should increment address
second_string++;
但是它们都增加地址。这怎么可能?
请阅读[运算符优先顺序](http://en.cppreference.com/w/c/language/operator_precedence)。 postincrement操作符的优先级位于图表的最上方,高于解引用操作符的顶端。 –
很难理解'* first_string ++;'意图是什么。显然他们想增加'first_string'。那么为什么那里有'*'呢? –
这是一个很好的观点,@DavidSchwartz。链接的'strcmp()'实现看起来有点凶狠 - 好像一个更简洁的书写版本被笨拙地重写,试图使它更清晰。 –