一个c语言程序,如此题。while 后面 括号中的表达式为赋值语j句时,如何判断其值是否为真?

#include <stdio.h>
void scpy (char *s1,char *s2)
{
int i=0;
while (*s1++=*s2++);
}

main()

{
char a[30]="t-mac is better than kobe!";
char b[30];
char *p=a;
char *q=b;
scpy (q,p);
printf("%s\n",q);
}

赋值语句就是先赋值,然后判断,比如你写的*s1++=*s2++,先是把*s2赋值给*s1,然后判断*s1是否为真,*s1!=0为真,再然后给两个指针分别自加。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-01-14
while(y--)
y--是先取值 再自减
所以这里就是先判断y是否为0, 不为0则循环
否则退出循环

但无论是否执行循环, 判断后,y都会自减。
第2个回答  2012-05-28
while (*s1++==*s2++)
相似回答