這篇文章將為大家詳細講解有關C語言中=與==有什么不同,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
在 C 語言中,最容易產生混淆的操作符要屬“=”與“==”。其中,“=”并不等于符號,而是賦值操作符,如 x=3。除此之外,還可以在一個語句中向多個變量賦同一個值,即多重賦值。例如,在下面代碼中把 0 同時賦給 x、y 與 z。
x = y = z = 0;
相對于只有一個等號的賦值操作符,關系操作符中的等于操作符采用兩個等號“==”來表示。正因如此,導致了一個潛在的問題:出于習慣,我們可能經常將需要等于操作符的地方寫成賦值操作符,如下面的代碼:
int x=10;
int y=1;
if(x=y)
{
/*處理代碼*/
}在上面的代碼中,if 語句看起來好像是要檢查變量 x 是否等于變量 y。實際上并非如此,此時if語句將變量 y 的值賦給變量 x 并檢查結果是否為非零。因此,雖然這里的 x 不等于 y,但是 y 的值為 1,if 語句還是會返回真。
當然,當確實需要先對一個變量進行賦值之后再檢查變量是否非零時,可以考慮顯式給出比較符。示例代碼如下:
int x=10;
int y=1;
if((x=y) != 0)
{
/*處理代碼*/
}這樣,程序的可讀性就得到了很大提高。
上面的示例代碼詳細地闡述了將等于操作符“==”誤寫成賦值操作符“=”所帶來的嚴重后果。同理,將賦值操作符“=”誤寫成等于操作符“==”也會帶來非常嚴重的后果。示例代碼如下:
int x=0;
int y=-1;
if((x==y)<0)
{
printf("y<0\n");
}在上面的代碼中,if 語句的本意是將變量 y 的值賦給變量 x,然后再判斷變量 x 的值是否小于 0。如果變量 x 的值小于 0,就執行語句 printf("y<0\n")。由于錯誤地將賦值操作符“=”誤寫成等于操作符“==”,所以無論變量 y 為何值,都不會執行語句 printf("y<0\n")。原因是等于操作符“==”的結果只能是 0 或 1,永遠不會小于 0。
除此之外,為了防止將等于操作符“==”誤寫成賦值操作符“=”,還可以在代碼中采用如下形式:
int x=0;
if(0==x)
{
}關于C語言中=與==有什么不同就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。