c語言問題,b11什麼意思,c語言中,為什麼b11最終得出b

2021-03-04 08:48:31 字數 4774 閱讀 8080

1樓:匿名使用者

b = (-1是0嗎?)且(-1是0嗎?),c裡面只有0才是假,其他數字都是真。

所以這個最後的結果是b = 1 && 1.b = 1;你可以去看看c語言的邏輯運算這一節。希望能幫到您

c語言中 ,為什麼b=(-1)&&(-1)最終得出b=1

2樓:啊啊啊的帝國號

&&是邏輯與運算,邏輯運算子的一種

運算規則是

真 && 真 = 真

真 && 假 = 假

假 && 真 = 假

假 && 假 = 假

其中,前面的兩個是參與運算的元素,等號後面是運算的結果然而在c語言中沒有'真'和'假'兩個玩意

就用1表示真,0表示假

在運算的時候,0為假,非0即為真

(-1)&&(-1)

這裡參與運算的兩個值都是(-1),不是0,所以是真也就是真&&真

結果為真,

在作為運算結果的時候,真用1表示,假用0表示,所以最終結果是b=1

記住兩點

在運算的時候,0為假,非0即為真

在作為運算結果的時候,真用1表示,假用0表示,

3樓:匿名使用者

&&是邏輯運算子,兩邊只有0與非0的差別,非0即為1.-1!=0所以-1為真,即1,b=(-1)&&(-1)裡,括號優先順序最高,其次是&&,最後是=,因此先-1&&-1,兩邊都為真,所以返回真,即1,語句由此變成b=1.

4樓:浪子灬風飛揚

因為&&是邏輯運算子,-1不為0,即為真,所以-1&&-1即:真&&真,結果為真,即1

5樓:匿名使用者

邏輯運算子只是判斷真值的,樓上正解

c語言 關於邏輯運算且 b=(-1)&&(-1) b是多少,怎麼算的?

6樓:匿名使用者

c語言使用非0代表邏輯真(返回邏輯真時使用1),0代表邏輯真。

而&&是邏輯與運算子,當兩邊同時為真時,結果才為真。

-1非0,代表邏輯真。因此(-1)&&(-1) 就是真&&真,結果仍然為真。

即上面的運算變成了b=真,即b=1

7樓:it孤鶩

-1 為真 ,

那麼 -1 && -1 就是真 就是1

那麼b=1

8樓:匿名使用者

非 0 就為真 所以-1為真

c語言中b=(-1)&&(0,1)是什麼意思?

9樓:示申僉

(0,1)是逗號表示式,這個表示式的值就應該是最右邊這項的值1

b=(-1)&&(0,1)

就相當於b=(-1)&& 1;由於-1和1都是非0值&&運算之後肯定為真,為真則值為1所以b=1;

10樓:匿名使用者

&&是與運算子,如果兩邊都是非0運算結果才是1這應該知道吧。-1就是乙個非零常量,(0,1)這個考得主要是「,」運算子,不管括號內有多少個數都取最後乙個值作為&&運算右邊的量,所以兩邊都是非0,運算結果為1.基本就是這樣,有問題可以再提問。

11樓:匿名使用者

(-1)就是-1沒什麼特殊含義。

(0,1)就是1,(a,b)=b。小括號運算就是取後面乙個。

a&&b,a和b都不為零時結果為1

12樓:夜光隨行

對於乙個邏輯表示式,其值只要不是0就被設定為1,(-1)不是0,所以就認為是1,

對於乙個逗號表示式,它的值取最後乙個表示式的值,即x = (0,1,2,3);

則x的值為3,所以這裡(0, 1)的值為1,所以b = (-1)&&(0, 1)等價於b = 1 && 1

所以b的值為1。

13樓:匿名使用者

(1):

/和%優先順序相同,但是結合順序是從左往右

a=d/100%9

等價於:

a=(d/100)%9

因為d是int  所以

d/100=2,

2%9=2

a=2;

(2):

(0,1)是逗號表示式,結果是1

(-1)&&1結果是1

b=(-1)&&(0,1)=1

14樓:匿名使用者

-1沒什麼意思啊,

(0,1)是逗號表示式。其值等於最後表示式的值。即1;

-1&&1的結果自然是true。

所以b為1;

15樓:匿名使用者

都好表示式 表示式1,表示式1,其求解過程先求表示式1,後求表示式2,整個表示式值是表示式2的值,所以(0,1)的值是1,(-1)加括號是為了調整結合順序。

16樓:匿名使用者

好的,其實這題很簡單的,你不要對數值 過於敏感。看到 && 這個符號 就應該想到 它左右兩邊的值是 」0「 還是」 1「 換句話說 ,是」真「還是」假「。然後很容易明白 -1 ,非0,是 」真「然後 後面的逗號表示式的值是1 就是」真」。

而邏輯表示式&&的意義是 兩個為真 就為真。所以是真 或者說 是 「1」你明白了嗎?

c語言b=2&&(-1)=?是什麼意思

17樓:天府第一寶

3)。邏輯運算子是根據表示式的值來返回真值或是假值。其實在c語言中沒有所謂的真值和假值,只是認為非0為真值,0為假值。

符號 功能

&& 邏輯與

|| 邏輯或

! 邏輯非

當表示式進行&&運算時,只要有乙個為假,總的表示式就為假,只有當所有都為真時,總的式子才為真。當表示式進行||運算時,只要有乙個為真,總的值就為真,只有當所有的都為假時,總的式子才為假。邏輯非(!

)運算是把相應的變數資料轉換為相應的真/假值。若原先為假,則邏輯非以後為真,若原先為真,則邏輯非以後為假。

還有一點很重要,當乙個邏輯表示式的後一部分的取值不會影響整個表示式的值時,後一部分就不會進行運算了。例如:

a=2,b=1;

a||b-1;

因為a=2,為真值,所以不管b-1是不是真值,總的表示式一定為真值,這時後面的表示式就不會再計算了。

這是一類特殊的運算子,自增運算子++和自減運算子--對變數的操作結果是增加1和減少1。例如:

--couter;

couter--;

++amount;

amount++;

看這些例子裡,運算子在前面還是在後面對本身的影響都是一樣的,都是加1或者減1,但是當把他們作為其他表示式的一部分,兩者就有區別了。運算子放在變數前面,那麼在運算之前,變數先完成自增或自減運算;如果運算子放在後面,那麼自增自減運算是在變數參加表示式的運算後再運算。這樣講可能不太清楚,看下面的例子:

num1=4;

num2=8;

a=++num1;

b=num2++;

a =++num1;這總的來看是乙個賦值,把++num1的值賦給a,因為自增運算子在變數的前面,所以num1先自增加1變為5,然後賦值給a,最終a也為5。b=num2++;這是把num2++的值賦給b,因為自增運算子在變數的後面,所以先把num2賦值給b,b應該為8,然後num2自增加1變為 9。

那麼如果出現這樣的情況我們怎麼處理呢?

c=num1+++num2;

到底是c=(num1++)+num2;還是c=num1+(++num2);這要根據編譯器來決定,不同的編譯器可能有不同的結果。所以我們在以後的程式設計當中,應該盡量避免出現上面複雜的情況。

18樓:匿名使用者

讓你用邏輯運算子和賦值運算子的優先順序

c語言中 b=a&&(-1); 是什麼意思啊

19樓:匿名使用者

if (a&&(-1))能理解嗎?

這兒就是把條件中的表示式賦值給了b,也就是a和-1都為真時,b為1,否則,b為0。這裡-1非0,所以為真,關鍵就是看a的取值了,如果a取非0,則b的值就是1,否則b取0。

不知說清楚了沒

20樓:匿名使用者

「&&」是c語言裡的邏輯與運算子,優先順序為第5級,「=」是賦值運算子,優先順序為第2級,「()」為單目運算子,優先順序最高,為15級結合性是自右向左的。首先,括號裡為「-1」,即為非0,也就是為真,「b=a」,是將a的值賦予b,這要分兩種情況的:①當a為非0時,整個表示式的值就為非0;②當a為0時,由於是邏輯與的運算,整個表示式的值就為0。

這個表示式的取值主要在於a的取值情況。

21樓:匿名使用者

&&是邏輯運算子 兩個運算元都為真時候表示式才為真即true(1) 這個表示式當a非0時候b=1 否則為0

c語言中b=a&&(-1);是什麼意思啊? 1+1=?

22樓:冬天終將過去

2, 1

---------------------因為a= 25/10%9 = 2

b = a&&(-1) ,即 2 ||(-1), 兩個非0值的邏輯與,結果為真,但b是整型 ,一般的編譯器結果為 1(有可能因不同的編譯器,結果會不一樣,但肯定不是0)

23樓:永恆組

-1非零,所以

為真,任何數與1就是它本身,所以只要a不為零,這個b就等於1 只有a=0時,b=0 1+1 數學上算出來是2 數位電路中為1 算錯的時候是除了1和2以外的任何數字

麻煩採納,謝謝!

C語言問題,C語言問題

符合,相當於一個字元,ascii字元可以直接轉成short整型數字。101 不符合,這是一個字串,不能作為常數。不符合,因為 會對雙引號轉義,找不到另一個雙引號。會出錯。而且就算是 也不符合,因為編譯器會把它理解成一個字串,而非單個字元。e3不符合。019不符合,0開頭代表8進位制數,不能出現9。0...

C語言問題,c語言問題

這是值傳遞,值傳遞的過程的是,系統會給你的實參的值進行乙個拷貝,把這個拷貝傳遞給形式引數。因為是拷貝,所以實參裡頭的值是不會改變的。如果是位址傳遞就不一樣了。補充 你可以定義乙個指標,這個指標指向主函式的結構體。然後子函式的形參也定義乙個指向結構提的指標。這樣就是位址傳遞了。樓主還是好好花點時間看看...

c語言問題int i,x 4ix 1 1 是什麼意思,請詳細解釋下。謝

x是int 3 4 型別的變數起始位址x 1是第1維的增加,位址增加的尺寸為int 4 x 1相當於 x 1 0 即第2行起始位址 x 1 取得x陣列第2行起始位址 x 1 1後面的加1是訪問第2行第2個元素,相當於加第2維下標,即指向x 1 1 x 1 1 等於x 1 1 中存放的資料 x 表示 ...