簡體   English   中英

在函數strToInt(C)中正確使用三元運算符

[英]proper use of the ternary operator in a function strToInt (C)

for (minus == false ? i = 0 : i = 1; string[i] >= '0' && string[i] <= '9'; ++i)
    {
        intValue = string[i] - '0';

        minus == false ? result = result * 10 + intValue : 
            result = result * 10 - intValue;

    }

錯誤:表達式無法分配屏幕截圖-http: //share.pho.to/AarcJ

https://codeshare.io/5Pdd7X

minus == false ? i = 0 : i = 1 minus == false ? i = 0 : i = 1由於運算符優先級規則, minus == false ? i = 0 : i = 1將被解析為(minus == false ? i = 0 : i) = 1 評估后minus == false ? i = 0 : i minus == false ? i = 0 : i ,運算符=左側將成為右值,但賦值運算符必須具有左值作為其左操作數。
將其更改為minus == false ? (i = 0) : (i = 1) minus == false ? (i = 0) : (i = 1)

使用(例如)

for (i = minus? 1:0; string[i].... etc

和...

result = result * 10 + minus? (-lastvalue) : lastvalue;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM