该语句退出循环的条件是什么???(100分)

  • 主题发起人 主题发起人 凤冠坡
  • 开始时间 开始时间

凤冠坡

Unregistered / Unconfirmed
GUEST, unregistred user!
for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)
 
这段语法在C#中是非法的.
 
在++ 或 C 里面的应该是合法的,
在网上折录的,我想知道他如何退出循环
 
g=c*2为0的时候吧,c-=14总会有结果的
 
不过,此代码确实很有意思.
关键点:
逗号在C++是并列操作符,返回值取最右面的表达式
因此:
d=0,g=c*2
对于系统来说,返回值是由g=c*2决定的.
而for循环此处是Bool判断语句,想起C++的规则了嘛?非零为真,否则为否,
因此,只要g=0就可以退出循环.
////////////////////////////////////////////
要g=0并不是每次都能实现的.只有c=0才可以,根据后面的判断,c必须是14的倍数,或者c溢出的时候能够满足14的倍数,就可以达到退出条件.
尝试了一下,如果c=28,则循环两次就会退出循环.
Good Luck!
 
还有:
char x[100];
那么 是不是 x = x[0];??
 
to ximmy:
char x[100];
那么 是不是 x = x[0];??
 
多人接受答案了。
 
x[0]表示char类型
x表示char * 类型,类似一个指针
 
后退
顶部