在此代码中,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
,但这绝对是错误的选择。
答案 0 :(得分:3)
您最初可以将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;
}
}
答案 1 :(得分:0)
根本无法在C中执行您想要的操作。您无法将变量设置为任何值,然后再防止将其再次设置。你可以做的最好的事情是设置一些你不打算正常使用的值,比如-1或者其他东西,然后在设置它之前检查它是否等于它。但是你不能阻止某些操作员设置它。