在C 中與是表示且與或,那麼與表示什麼

時間 2021-08-14 08:57:47

1樓:旅初彤

& 如果是單獨使用則是進行二進位制數的位與運算,比如二進位制數 100 & 101 結果就是 100

& 還可以作為變數的前面表示取變數位址賦值給指標, 如:int a = 0; int *p = &a;

a|b 或運算,會返回a和b中每個位(位元,即二進位制)最大的值;

2樓:聽不清啊

在c++中,&&與||是表示邏輯與、邏輯或,那麼&與|表示按位與、按位或。

3樓:匿名使用者

雙目運算子表示邏輯與或者或,舉例就是

c = (a&&b),c只有在a和b同時不為0的情況下才為1單目運算子是按位與,就是化成二進位制數,比較相同的位,與就是同為1才是1,或就是有乙個1就是1,舉例就是:

a = 1101;b=1011;c = (a&b);c就是1111

4樓:靜心先生

&和|是位操作,分別是互為1得1,有乙個不為1得0與有1就得1

5樓:匿名使用者

c = (a&&b),c只有在a和b同時不為0的情況下才為1

單目運算子是按位與,就是化成二進位制數,比較相同的位,與就是同為1才是1,或就是有乙個1就是1,舉例就是:

a = 1101;b=1011;c = (a&b);c就是1111

6樓:匿名使用者

& 與 | 表示按位操作,分別是按位與和按位或,比如:

0101 & 1100 的結果是 0100

0101 | 1100 的結果是 1101

7樓:三天打魚

按位與,按位或

在二進位製上進行的運算

0011 | 1010 = 1011

1100 & 0111 = 0100

補充&還可能是取址運算比如 int * p=&變數;取變數的位址

8樓:匿名使用者

& 表示按位與運算,| 表示按位或運算。

9樓:一匹馬賽克

後兩者是位運算子,前者是按位與,後者是按位或

10樓:

&是:按位與

運算規則和1是二進位制)

將兩個運算元的對應二進位制位進行「與運算」。

|是:按位或

運算規則:0|0=0; 0|1=1; 1|0=1; 1|1=1;

將兩個運算元的對應二進位制位進行「或運算」。

11樓:匿名使用者

& |是位操作符,按位與 按位或

12樓:射手小小王

都是二進位制運算子,你仔細看看相關章節

13樓:匿名使用者

&& 與 (相當於and 且)

|| 或 (相當於or 或)

14樓:璐人釔

&按位進行與運算 11 & 00 = 00

|按位進行或運算 11 | 00 = 11

15樓:匿名使用者

&可以是取位址符,也可以是按位與運算

|是按位或運算

16樓:匿名使用者

& 位運算的與

| 位運算的或~~~~

17樓:匿名使用者

& 按位且, 1&1=1 1&0=0

| 按位或 1|1=1 1|0=1

18樓:徐臨祥

推薦回答雙目運算子表示邏輯與或者或,舉例就是 c=(a&b),c只有在a和b同時不為0的情況下才為1 單目運算子是按位與,就是化成二進位制數,比較相同的位,與就是同為1才是1,或就是有乙個1就是1,舉例就是: a=1101;b=1011;c=(a&b);c就是1111

19樓:瞬

string str="hello";

string* str1=str;

//str1為指標型別,它儲存的是str的位址(在記憶體中)(str1指向str)

&str1="hi";//此處&表示str1求根,"&str"整體代表str所處的記憶體,該語句執行後,str的值變成了"hi"

------str1--------------str----------------------

......| str的位址 |......|  h  | e | l | l | o |......//位址一般為一串數字

|就不知道是什麼鬼玩意了...囧囧囧

c++中&和&&有什麼區別

20樓:a羅網天下

區別一:意思不同

1、&表示按位與操作。

2、&&表示邏輯與的意思,即為and。

區別二:程式執行的時候不同

1、當運算子&&兩邊的表示式的結果都為true時,整個運算結果才為true,否則,只要有一方為false,則結果為false。比如 12&&23的結果就是1,12&&-1 的結果是1,123&&0的結果就是0

2、我們通常使用0x0f來與乙個整數進行&運算,來獲取該整數的最低4個bit位,例如,0x31 & 0x0f的結果為0x01。

區別三:&&還具有短路的功能

如果第乙個表示式為false,則不再計算第二個表示式,例如,對於if(str != null && !str.

equals(「」))表示式,當str為null時,後面的表示式不會執行,所以不會出現nullpointerexception

c++中的算術運算子包括基本的算術運算子和自增、自減運算子。由算術運算子、運算元和括號構成的表示式稱為算術表示式。

基本算術運算子有:+(加)、-(減或負號)、*(乘)、/(除)、%(取餘)。其中「-」作為負號時為一元運算子,其餘都為二元運算子。

這些基本算術運算子的意義與數學中相應符號的意義是一致的。它們之間的相對優先順序關係與數學中的也是一致的,即先乘除、後加減,同級運算自左向右進行。使用算術運算子要注意以下幾點:

①「%」是取餘運算,只能用於整型運算元。表示式a%b的結果為a/b的餘數。 「%」的優先順序與「/」相同。

②當「/」用於兩整型運算元相除時,其結果取商的整數部分,小數部分被自動捨棄。因此,表示式1/2的結果為0,這一點需要特別注意。

⑧c++中的「++」 (自增)、 「--」 (自減)運算子是使用方便且效率很高的兩個運算子,它們都是一元運算子。這兩個運算子都有前置和後置兩種使用形式

21樓:匿名使用者

c++中&和&&的區別如下:

1、含義上的區別:

&&表示邏輯與的意思,即為and。當運算子兩邊的表示式的結果都為true時,整個運算結果才為true,否則,只要有一方為false,則結果為false。

比如 12&&23的結果就是1,12&&-1 的結果是1,123&&0的結果就是0。

2、運算規則的區別:

表示按位與。&表示按位與操作,我們通常使用0x0f來與乙個整數進行&運算,來獲取該整數的最低4個bit位,例如,0x31 & 0x0f的結果為0x01。二進位制與運算規則:

1&1=1  1&0=0  0&0=0。

3、特殊用法的區別:

&&還具有短路的功能,即如果第乙個表示式為false,則不再計算第二個表示式。

例如,對於if(str != null && !str.

equals(「」))表示式,當str為null時,後面的表示式不會執行,所以不會出現nullpointerexception。

22樓:

c語言採用了短路方式,如果&&前乙個為false,直接退出。所以yanganglove的回答不對。

&&和&的不同在於&&是邏輯運算子,前後跟兩個表示式,如果兩個都為true,整個結果為true。而&是位運算子,按位進行,比如:

3&53的二進位制為11

5的二進位制為101

011&101

_____

001(按每位進行與運算)

所以3&5的結果為1。

位運算子還有|(或)、^(異或)、~(取反)等。

&&和||的優先順序是相同的,而!優先順序比較高。

23樓:匿名使用者

看下面**

if(a>0&&b<0&&c>0);2個&&時他會把if裡面的條件判斷完後再來判斷是真還是假;

if(a>0&b<0&c>0);1個&時他可能不會判斷if裡面的所有條件.當判斷到假時他就不再進行下面的判斷,直接得出假值!

24樓:私理主宰

前者是按位與,後者是邏輯與

25樓:

&&是邏輯與 &是按位與 傑物說的對

關於c++中邏輯與&&和邏輯或||的問題

26樓:匿名使用者

lz 我在 vs 2008 用如下**做了測試

#include

int main()

顯示為016

7 也就是只有 a 遞增了,b c 不變。我覺得這樣才符合我所學的解釋。

對於 a++&&b++&&c++ 這個表示式,

首先從運算子優先順序(precedence)分析為:

(a++)&&(b++)&&(c++) 即,所有 後置遞增『++』應該先運算。

然後 從 && 的集合性(associativity)分析

((a++)&&(b++))&&(c++) 即,從左到右先計算左邊的『&&』,即 (a++)&&(b++)

最後,也是最關鍵的乙個步驟就是 c++ 標準對 && || 兩個運算子有特殊的規定:

短路求值(short-circuit evaluation) —— 簡單的說,有表示式 a&&b 其中 a,b 分別是兩個表示式,編譯器會先計算左邊的 a 的值,如果a 的值為 0,則不管 b 的值最後是多少都不影響 a&&b 的結果了(a&&b 的結果已經提前由 a 決定了為 0 對不?),那麼編譯器就不再對 b 求值了,a&&b 只計算了 a 就直接返回為 0了。

所以這裡 ((a++)&&(b++))&&(c++),由於第乙個 && 的左邊 a++ 返回 0,所以 b++ 被略過,以此類推 c++ 也應該被略過

這樣最終 只有 a++ 被求值,b++ c++ 被忽略,a++&&b++&&c++返回0

27樓:匿名使用者

首先第乙個與運算

與運算必須是所有都為真 此式子的值才為真,首先系統先判斷第乙個值,a 因為a的值為0,所以系統不需要再判斷後面的是否為真 也就不需要再執行後面的b++,c++,所以就只執行了以個a++,所以a的值為1,b,c的值不變

而或運算是所有值為假,式子才為假,當系統判斷第乙個a的值為假時,執行a++,a的值為1,然後系統再判斷b的值,這時b為真,執行b++,b的值為7,應為b為真 這個式子的值已經為真了,所以系統不需要再判斷後面的語句,也就不執行c++,所以c不變

28樓:匿名使用者

a++&&b++&&c++中,從左到右計算,先計算a++,(a++)==0,在邏輯與中,當從左到右計算到某一陣列已經是false(或0)了,編譯器就不會計算後面的了(因為再計算下去對這式子已經沒意義了,式子已經是false(或0)了),然後就沒計算b和c...注:(a++)的這句的值為0(因為之前a==0),但a在參與完計算後才自增1,你要換成是++a就不同了;

a++||b++||c++中,乙個為false(或0)無法對語句產生必然結果,所以編譯器需要將a.b.c計算完才能得出式子結果,就自然把a.

b.c全計算了(即全部自增1),但對編譯器來說這個式子就是計算0||6||7是否為真,然後才將a.b.

c自增1...

在excel中,設有A,B,C,D四列找出c列與a列相同的項

在e上設 sumif c c,a a,d d b2 a b c d g 無 2 是 6 2 線 3 本 7 13 裝 4 無 8 10 定 5 小 9 5 本 6 在 10 6 公式 g1 b1 sumif a a,c1,d d g2 b2 sumif a a,c2,d d 楚楚柳柳 假如把相加的值...

人名中”二世“”三世“是表示晚輩與長輩重名嗎?應該如何寫,如何讀

沒錯。父親如果命名兒子同樣的名字,則兒子是一世 jr 兒子如果也命名自己的兒子同樣的名字,則就是二世 jr.ii 以此類推,三世是jr.iii。jr.讀作junior,後面的羅馬數字這樣讀 2世則是 second 三世是 third 依次類推。所以二世合起來就是 junior second 三世合起...

訊號與系統中t 是連續函式嗎,在《訊號與系統》f t 變成f t t 的波形是怎麼變的,為什麼?

116貝貝愛 是連續函式 解題過程 性質 在某點連續的有限個函式經有限次和 差 積 商 分母不為0 運算,結果仍是一個在該點連續的函式。連續單調遞增 遞減 函式的反函式,也連續單調遞增 遞減 連續函式的複合函式是連續的。閉區間上的連續函式在該區間上一定有界。存在一個正數m,使得對於任意x a,b 都...