i++表示先在语句里引用i的值然后在自增1
如int i=5,s;
s=(i++)+(i++);
那么s就等于10
在此语句后i就等于7了 ,因自增了两次!
while(a[i++]==a[i])和while(a[i]==a[i+1])
i++;
在while括号内的成立了就执行循环内的语句不成立则不执行!
第一句括号内的成立,所以执行下面的i++;语句,
第二个括号内的就不好说了
如果在前面定义的时候a[i]的值就等于a[i+1]
那么也执行i++;语句
单纯的看a[i++]==a[i]和a[i]==a[i+1]是不等价的!
看的懂吗?
(我也是新手……o(∩_∩)o...)
那能等价吗?
while(a[i++]==a[i])是成立的,而while(a[i]==a[i+1])是不成立的!那怎么能等价呢?第一个就相当于while(a[i]==a[i])而第二个就不是了!
while ( a[i++] == a[i] )意思是先判断( a[i] == a[i] ),不管是否成立都要执行i ++;
与while ( a[i] == a[i+1] ) i ++;相比,条件不同以及第2个是个循环:相等才能自加。