【发布时间】:2013-11-24 11:03:06
【问题描述】:
我有这个 for 循环
for (i = 0, j = N-1; i < j; ++i , --j )
我想用 4 而不是 1 增加 i,用 4 而不是 1 减少 j。
类似的东西,但我不知道sintax:
for (i = 0, j = N-1; i < j; 4+=i , 4-=j )
谢谢
【问题讨论】:
标签: c loops for-loop increment decrement
我有这个 for 循环
for (i = 0, j = N-1; i < j; ++i , --j )
我想用 4 而不是 1 增加 i,用 4 而不是 1 减少 j。
类似的东西,但我不知道sintax:
for (i = 0, j = N-1; i < j; 4+=i , 4-=j )
谢谢
【问题讨论】:
标签: c loops for-loop increment decrement
换一种方式试试:i += 4。这是i = i + 4 的简写。现在你已经写了4 += i,这意味着4 = 4 + i——这当然没有意义。
【讨论】:
试用:
对于 (i = 0, j = N-1; i
语法是从后到前的,只需将 4+=i 翻转为 i+=4,并将 4-=j 翻转为 j-=4
【讨论】:
而不是写:
for (i = 0, j = N-1; i < j; 4+=i , 4-=j )
这样写:
for (i = 0, j = N-1; i < j; i+=4 , j-=4 )
当你有以下代码时:
i += 5;
基本意思是一样的:
i = i + 5;
因此 5 += i 的含义与以下相同:
5 = 5 + i;
这显然没有任何意义,因为 5 不是变量,因此您不能将值存储到其中。
【讨论】:
这只是语法糖。写j=j-4
【讨论】:
试试这个:
for (i=0,j=N-1;i<j;i+=4,j-=4)
或(第一次更容易理解)
for (i=0,j=N-1;i<j;i=i+4,j=j-4)
代替:
for (i = 0, j = N-1; i < j; 4+=i , 4-=j )
它会尝试将值 4+i (4=4+i) 分配给 4 并在稍后分配相同的值 (4=4-j):
[错误] 左操作数需要左值
【讨论】: