//function to copy string t to string s using pointers
void strcpy(char *s,char *t)
{
while((*s++=*t++)!='\0');
return;
}
我很困惑如何评估表达式* s ++ == * t ++。我知道增量运算符的关联性高于赋值运算符。
答案 0 :(得分:2)
* s ++ = * t ++基本上是
*s = *t;
s++;
t++;
答案 1 :(得分:1)
*s++=*t++
意味着;必须对*s
和*t
进行求值以生成变量(左值),并在此过程中使用s
和t
的原始值(即{{1}的值在递增之前和} s
。必须在t
增加之前分配*t
。
请注意,分配后不必增加增量。相反,必须使用原始值。只要使用原始值,增量就可以随时发生。
还应该注意,后增量s
在变量之后并不意味着增量将在赋值后发生。