在这个代码中,一旦f
被分配了i
的值,例如在3次迭代f=i=2
后从循环内部,那么下次f
就不能再次被赋值:f
的值必须坚如磐石地只对第一次赋值。
for(i=0;i<N-1;i++)
{
if(array[i+1]>array[i]);
else if(array[i+1]<array[i])
{
f=i;s=i+1;}
else
{f=i;
s=i+1;}
}
一旦f
初始化为一个值i
它就不应该改变。C 中是否有任何运算符可以提供帮助?我想过static
但这绝对是错误的选择。
最初可以将f
设置为等于某个占位符值。 然后,检查此占位符并仅进行一次分配:
int f = -1;
for (i=0; i < N-1; i++)
{
if (array[i+1] > array[i]);
else if (array[i+1] < array[i])
{
if (f == -1) f = i;
s = i+1;
}
else
{
if (f == -1) f = i;
s = i+1;
}
}
在 C 语言中根本没有办法做你想做的事。 不能将变量设置为任何值,然后阻止将来再次设置它。 你能做的最好的事情就是给它设置一些你不打算正常使用的值,比如 -1 或其他什么,然后在设置之前检查它是否等于它。 但是您无法阻止它由某些操作员设置。