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



在这个代码中,一旦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 或其他什么,然后在设置之前检查它是否等于它。 但是您无法阻止它由某些操作员设置。

最新更新