1樓:匿名使用者
如果a為0,則邏輯假,後面的邏輯與不再運算,直接給b賦值邏輯假,也就是0
如果a不為0,則邏輯真,與後面的-1(也是邏輯真)進行邏輯與後得到邏輯真,於是給b賦值邏輯真,也就是1
c語言中b=a&&(-1);是什麼意思啊? 1+1=?
2樓:冬天終將過去
2, 1
---------------------因為a= 25/10%9 = 2
b = a&&(-1) ,即 2 ||(-1), 兩個非0值的邏輯與,結果為真,但b是整型 ,一般的編譯器結果為 1(有可能因不同的編譯器,結果會不一樣,但肯定不是0)
3樓:永恆組
-1非零,所以
為真,任何數與1就是它本身,所以只要a不為零,這個b就等於1 只有a=0時,b=0 1+1 數學上算出來是2 數位電路中為1 算錯的時候是除了1和2以外的任何數字
麻煩採納,謝謝!
c語言b=2&&(-1)=?是什麼意思
4樓:天府第一寶
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);這要根據編譯器來決定,不同的編譯器可能有不同的結果。所以我們在以後的程式設計當中,應該儘量避免出現上面複雜的情況。
5樓:匿名使用者
讓你用邏輯運算子和賦值運算子的優先順序
c語言中執行語句:b=a-b?a:b-1;是什麼意思?
6樓:匿名使用者
此表示式和以下**實現是一樣的
if ( a - b != 0 )
b = a;
else
b = b-1;
7樓:隔壁九大爺
這是一個三目運算式,如果b=a-b成立,就等於a,否則等於b-1.
c語言中,d=a>30?b:c 這個語句是什麼意思?
c語言中b=(-1)&&(0,1)是什麼意思?
8樓:示申僉
(0,1)是逗號表示式,這個表示式的值就應該是最右邊這項的值1
b=(-1)&&(0,1)
就相當於b=(-1)&& 1;由於-1和1都是非0值&&運算之後肯定為真,為真則值為1所以b=1;
9樓:匿名使用者
&&是與運算子,如果兩邊都是非0運算結果才是1這應該知道吧。-1就是一個非零常量,(0,1)這個考得主要是「,」運算子,不管括號內有多少個數都取最後一個值作為&&運算右邊的量,所以兩邊都是非0,運算結果為1.基本就是這樣,有問題可以再提問。
10樓:匿名使用者
(-1)就是-1沒什麼特殊含義。
(0,1)就是1,(a,b)=b。小括號運算就是取後面一個。
a&&b,a和b都不為零時結果為1
11樓:夜光隨行
對於一個邏輯表示式,其值只要不是0就被設定為1,(-1)不是0,所以就認為是1,
對於一個逗號表示式,它的值取最後一個表示式的值,即x = (0,1,2,3);
則x的值為3,所以這裡(0, 1)的值為1,所以b = (-1)&&(0, 1)等價於b = 1 && 1
所以b的值為1。
12樓:匿名使用者
(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
13樓:匿名使用者
-1沒什麼意思啊,
(0,1)是逗號表示式。其值等於最後表示式的值。即1;
-1&&1的結果自然是true。
所以b為1;
14樓:匿名使用者
都好表示式 表示式1,表示式1,其求解過程先求表示式1,後求表示式2,整個表示式值是表示式2的值,所以(0,1)的值是1,(-1)加括號是為了調整結合順序。
15樓:匿名使用者
好的,其實這題很簡單的,你不要對數值 過於敏感。看到 && 這個符號 就應該想到 它左右兩邊的值是 」0「 還是」 1「 換句話說 ,是」真「還是」假「。然後很容易明白 -1 ,非0,是 」真「然後 後面的逗號表示式的值是1 就是」真」。
而邏輯表示式&&的意義是 兩個為真 就為真。所以是真 或者說 是 「1」你明白了嗎?
請問一下c語言中(m=a>b)&&(n=c>d)a=1b=2c=3d=4是什麼意思?詳細一下謝謝
16樓:匿名使用者
(m=a>b)&&(n=c>d)
a>b的布林值賦值(1或0)給m,如果為真,繼續執行n=c>d.如果a>b為假,則不執行c=c>d
a=1b=2c=3d=4
這表示式有問題
17樓:匿名使用者
&&是條件與,表示只有前後兩個判斷語句的布林值都為1(判斷結果都為真)的時候才滿足條件。按初a=1b=2c=3d=4來看,&&前後的條件都為假,所以就是 0&&0,最終結果為假。
18樓:手動閥隧道
m=a>b就是把a>b的比較結果賦給m,即a>b成立時,m=1否則m=0
同理n=c>d也是一樣
那麼(m=a>b) && (n=c>d)的意思就是(a>b)&&(c>d),同時把a>b的結果賦給m,c>d的結果賦給n
a=1b=2c=3d=4這個不符合語法規則啊??是不是a=1;b=2;c=3;d=4?
c語言ba1是什麼意思,c語言問題,b11什麼意思
邏輯運算,a 1 是a和 1與,如果a不為0那麼結果就是1,如果a為0結果就為0,結果賦給b 2,1 因為a 25 10 9 2 b a 1 即 2 1 兩個非0值的邏輯與,結果為 真,但b是整型 一般的編譯器結 專果為 1 有可能因屬不同的編譯器,結果會不一樣,但肯定不是0 邏輯與運輸符,就是兩邊...
c語言中語句srandtimenull什麼意思
c語言中 srand time null 的意思是 使用當前時間進行隨機數發生器的初始化。time t time time t t 是c標準庫函式,如果t是空指標 null 直接返回當前時間。如果t不是空指標,返回當前時間的同時,將返回值賦予t指向的記憶體空間。time 是指返回自 unix 紀元起...
C語言for迴圈,c語言中for語句是怎麼用的
為什麼?我想為你為什麼不知道原因,這是很簡單的邏輯推算題,一看就知道你的呼叫的函式返回值就是你的輸入值,我猜你是想要的結果是1,1 2,1 2 3,1 2 3 4,1 2 3 4 5是吧?呼叫函式的形參只是在你用的時候形成,當呼叫完畢就會釋放,j的運算結果不會保留在記憶體當中,因此你想要那種結果的話...