c中是否有任何运算符可以避免在第一次赋值后变量值发生任何变化?

时间:2017-03-17 01:40:15

标签: c

在此代码中,fi分配一些值,例如在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,但这绝对是错误的选择。

2 个答案:

答案 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或者其他东西,然后在设置它之前检查它是否等于它。但是你不能阻止某些操作员设置它。