2013-01-03 215 views
0

我試着寫這個東西在C:比較指針人物

(*(result+1))!="\0" 

編譯器說:在條件(*(result+1))=!"\0"

什麼問題

可能的分配?

+3

錯誤顯示您的運算符爲'=!'而不是'!='。 – sean

+0

請發佈完整的代碼。這裏有很多陷阱。 – moooeeeep

+0

我相信你的意思是''\ 0''而不是'「\ 0」'。注意引號。第一個是字符串,第二個是單個字符。此外,你的第一和第二代碼是不同的。 – Jack

回答

7

C中的比較使用==運算符。單一=是一項任務。除此之外,你正試圖比較一個指向一個整數的指針。你的代碼是:

(*(result+1))=!"\0" 

在那表情,!"\0"等於0,使你的代碼是真的做:

(*(result+1))=0 

而這可能不是你想要的。當然,它不符合你在「我試圖寫這個表達式」的例子。我認爲你想要做的是:

(*(result+1)) != '\0' 

使用!=「不等於」運算符。它看起來像你寫了=!。可能只是一個錯字。請注意,我將雙引號更改爲單引號以更正您的表達式。

編者按 - 你根本不需要操作員。你的表達等於:

*(result + 1) 

哪一個可以爲你省去麻煩。

+0

換句話說,「有什麼不是問題?」 ? –

+0

你怎麼知道OP想要的是什麼? – moooeeeep

+0

@moooeeeep,受過教育的猜測。他說他想在他的問題上寫什麼。 –

1

如果您的確在進行比較而不是作業,則需要==而不是=;這就是爲什麼你會得到可能的作業信息。

+0

_expr1!= expr2_不是一個賦值。 – varevarao

+0

@varervarao - 有人編輯了這個問題,並破壞了OP的意圖。它認爲八爪魚在回答問題時考慮到問題的上下文有合理的答案。 –

+0

正如@CarlNorum所說,我根據我在問題中看到的回答。它看起來像一個任務,而不是一個顛倒的'!='操作符。 – octopusgrabbus