亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

邏輯運算符的書面版本

邏輯運算符的書面版本

C++
尚方寶劍之說 2019-10-18 14:53:44
這是我見過的唯一地方and,or并且not在C ++中被列為實際的運算符。當我在NetBeans中編寫一個測試程序時,我得到了紅色下劃線,好像有語法錯誤,并認為該網站是錯誤的,但是NetBeans是錯誤的,因為它按預期進行了編譯和運行。我可以看到!它受到青睞,not但是and&& 的可讀性or似乎比他們的語法兄弟更好。為什么存在這些版本的邏輯運算符,為什么似乎沒有人使用它?這是真正有效的C ++還是該語言隨附的與C的某種兼容性?
查看完整描述

3 回答

?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

它們起源于下在頭<iso646.h>。當時有一些鍵盤無法&&(例如)鍵入所需的符號,因此標題(包含#define)可以通過(在我們的示例中)定義and為來幫助他們這樣做&&。當然,隨著時間的流逝,這種使用變得越來越少了。


在C ++中,它們成為了所謂的替代令牌。你不會需要包括任何一個兼容的編譯器使用這些標記(如如此,C ++ - C頭的指明分數版本<ciso646>,為空)。除拼寫外,替代標記與常規標記類似。因此,在分析過程中and是完全相同一樣&&,它的拼寫同樣的事情只是用不同的方式。


關于它們的使用:由于很少使用它們,因此使用它們通常比有用的方法更加令人驚訝和混亂。我敢肯定,如果這是正常的話,它們會更容易閱讀,但是人們已經習慣了&&,||其他任何事情都會使人分心。


編輯:自從我發布了這篇文章以來,我已經看到它們的使用量有很小的增加。我仍然避免他們。


查看完整回答
反對 回復 2019-10-18
?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

and并且&&在C ++中在功能上相同。在and和or運營商是真正有效的C ++和語言標準的一部分。


為了用具體示例詳細說明其他答案,除了“可讀性”之外,還有另一個原因要優先and于&&。當邏輯“與”的意思是明確地拼寫“與”時,就消除了細微錯誤的可能性。


考慮一下:


int x = 3;

int y = 4;


// Explicitly use "and"

if (x and y) {

    cout << "and: x and y are both non-zero values" << endl;

}


// Using "&&"

if (x && y) {

    cout << "&&: x and y are both non-zero values" << endl;

}


// Oops! I meant to type "&&"!

if (x & y) {

    cout << "&: x and y are both non-zero values" << endl;

}

else {

    cout << "How did I get here?" << endl;

}

所有這三個if語句都會編譯,但是最后一個則意味著完全不同且意想不到的東西!


如果您總是在使用and邏輯AND時使用,則絕不會意外輸入單個“&”并使代碼成功編譯并以神秘的結果運行。


另一個好的練習:嘗試不小心遺漏“ and”字符,然后看看會發生什么。;)


查看完整回答
反對 回復 2019-10-18
  • 3 回答
  • 0 關注
  • 561 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號