我正在尝试对通过O(n^2)
进行检查的函数进行编码,并且通常最终会使用类似
char* a[]
现在我真的想将此更改为if(a[i] == 'x'){
i++;
//...
}
,但它似乎不起作用。
问题:
我在这里做错了什么,还是有一个干净的选择来避免a[i++]
?
注意:目前函数中我的13行中有3行是i++
,这使得它看起来比实际大得多。
答案 0 :(得分:8)
if (a[i++] == 'x')
本身在C中很好。但是,它在语义上是不同的:如果条件为真,则原始代码仅递增i
,而if (a[i++] == 'x')
总是递增{{1} }}
答案 1 :(得分:2)
alert(optionString.indexOf('₹')); // returns -1
未定义且v[i++]
不会导致有符号整数溢出,则 v[i]
未定义。
i++
如果不等同于
if(a[i++] == 'x'){
...
}
因为前者在每次执行时都会if(a[i] == 'x'){
i++;
...
}
,所以
但后者仅在i
为真时才会i
。{/ p>
a[i] == 'x'
是避免++i
的替代方法。请注意,i++
的值与++i
不同。 i++
可能有用。