这两行代码有什么区别?
这是一个字符串比较函数,第二份代码即使给两个形参赋予相同的字符串"abc",但比较结果却不相同。原因出现在下面这两行语句中。其中for(;*s1&&*s2&&*s1==*s2;s1++,s2++)与for(;*s1,*s2,*s1==*s2;s1++,s2++)这两行代码有什么区别?
第一份代码如下:
程序代码:
int function(char *s1,char *s2){ for(;*s1&&*s2&&*s1==*s2;s1++,s2++) ; printf("%c %c\n",*s1,*s2); return *s1==*s2 ? 0 : *s1>*s2 ? 1 : -1; }
第二份代码如下:
程序代码:
int function(char *s1,char *s2){ for(;*s1,*s2,*s1==*s2;s1++,s2++) ; printf("%c %c\n",*s1,*s2); return *s1==*s2 ? 0 : *s1>*s2 ? 1 : -1; }