1樓:宗政元彤
這裡舉一些例子
1,判斷指標是否為空時:
int *ptrn = 0; // 這裡建立的指向乙個整數型別的指標為空
#define null 0
if(ptrn == null)//這裡對為空的指標進行判斷,這裡的邏輯運算子兩側進行對比的是乙個32bit的位址
2,判斷某個函式返回是否為true或false
#define true 1
int isnull(char* ptrstring)
if(isnull(...) == true) //這裡的語法也是可以的,在邏輯運算子兩側進行對比的是乙個函式的返回值
3,0或者1int num = 10;
if(num)//這裡執行的語法,也是正確的,儘管沒有邏輯運算子,但因為num為10,大於0的數,所以程式會判斷這個地方為true
4,非integer的數
if(fnum 0.0f)//這裡進行判斷的兩個數是float浮點型,也是可以得到執行的
c語言邏輯運算子兩側運算物件的資料型別可以是什麼
2樓:車掛怒感嘆詞
[最佳答案] 你的是什麼語言?什麼型別的邏輯運算? 如果是c語言,並且不是按位邏輯運算,答案肯定是d 因為c中的規定是非零數字表示真,0表示假,而邏輯運算就是對真假進行計算,所以在c中是任何型別的資料都可以進行邏輯運算,只要是非零數字就會被認為是真,再進行邏輯運算時按真處理。
如果是c語言,並且是按位邏輯運算(比如按位與&運算子),答案c正確,答案a肯定錯。 因為對於按位邏輯,是進行的二進位制按位計算,因此要求兩側運算元是整型,當然字元型資料可以按ascii碼自動轉換為整型,所以字元資料也可以進行按位邏輯運算。按位邏輯運算不可能只能對0或者1進行計算,因為那樣的話就失去意義了,只能對0或者1操作還有什麼意義,就是4種結果,可能嗎?
3樓:
d是正確答案。因為邏輯運算子兩側最終要轉換成bool值運算,bool值只有非0(用1表示)和0兩個值,所以只要不是0,就被轉換為1,所以無論什麼型別的值都可以參與運算。
4樓:匿名使用者
應該是d但準確的說是任何簡單資料型別都是可以的.char,int ,long ,unsigned,float ,double,c就是這幾個基本的資料型別,都可以用在邏輯運算中.
5樓:黃邦勇帥哥哥
你的是什麼語言?什麼型別的邏輯
運算?如果是c語言,並且不是按位邏輯運算,答案肯定是d因為c中的規定是非零數字表示真,0表示假,而邏輯運算就是對真假進行計算,所以在c中是任何型別的資料都可以進行邏輯運算,只要是非零數字就會被認為是真,再進行邏輯運算時按真處理。
如果是c語言,並且是按位邏輯運算(比如按位與&運算子),答案c正確,答案a肯定錯。
因為對於按位邏輯,是進行的二進位制按位計算,因此要求兩側運算元是整型,當然字元型資料可以按ascii碼自動轉換為整型,所以字元資料也可以進行按位邏輯運算。按位邏輯運算不可能只能對0或者1進行計算,因為那樣的話就失去意義了,只能對0或者1操作還有什麼意義,就是4種結果,可能嗎?
6樓:靳葉運碧萱
這裡舉一些例子
1,判斷指標是否為空時:
int*ptrn=0;
//這裡建立的指
向乙個整數型別的指標為空
#define
null
0if(ptrn
==null)//這裡對為空的指標進行判斷,這裡的邏輯運算子兩側進行對比的是乙個32bit的位址
2,判斷某個函式返回是否為true或false
#define
true
1int
isnull(char*
ptrstring)
if(isnull(...)
==true)
//這裡的語法也是可以的,在邏輯運算子兩側進行對比的是乙個函式的返回值
3,0或者1int
num=
10;if(num)//這裡執行的語法,也是正確的,儘管沒有邏輯運算子,但因為num為10,大於0的數,所以程式會判斷這個地方為true
4,非integer的數
if(fnum
0.0f)//這裡進行判斷的兩個數是float浮點型,也是可以得到執行的
c語言邏輯運算子 我不明白&&和||到底是怎麼運算的
7樓:匿名使用者
1 形式:
&&的形式為a&&b。
||的形式為a||b。
2 計算規則:
&&只有當a和b的值均非0時,結果為1,否則結果為0。
||只有當a和b的值均為0時,結果為0,否則結果為1。
3 優先順序:
&&的優先順序比||高,所以在寫在一起時,先計算&& 再計算||。
相同符號時,自左向右計算。
4 短路原則:
對於&&,如果左運算元a為0,那麼結果必然為0, 右運算元b將不參與計算。
對於||,如果左運算元a非0,那麼結果必然為1, 右運算元b將不參與計算。
8樓:匿名使用者
邏輯運算,方式子成立是即為真時整個式子值就為1反之為0,而對於值來說只要不是0就為真,如i&&j&&k=1,i,j=3都為真,所以整個式子為真等於1。另外要注意的是當&&左邊為假時不進行右邊計算,如(i=0)&&(j=3);l為0假右邊j=3不進行運算,所以j還是等於2,手機寫的真不方便。
9樓:**
i&&j&&k,先判斷i&&j,因為i和j都大於0,所以這個命題是真的,所以i&&j這個表示式等於1,再判斷後面的1&&k(ps:如果i&&j這個表示式等於0,後面的就不用判斷了,整個表示式就是0了)
。因為k大於0,所以1&&k就等於1,整個表示式就等於1了。
10樓:匿名使用者
邏輯正即為1,否則就為0,所以i&&j&&k=1
至於後面的就是因為&&這個運算子了,如果它的前乙個為0的話那後面的就會直接忽略
不過你的結果貌似有點問題。。。。
C語言中算數運算子,關係運算子,邏輯運算子的優先級別
1級優先順序 左結合 圓括號 下標運算子 指向結構體成員運算子 運算高於關係高於邏輯高於付值 去看一下教材,譚浩強 第三版 c語言的運算子的優先順序 邏輯運算子 條件運算子 賦值運算子 關係運算子 算術運算子。它們之間的優先順序 1 最高端 出現同級別運算子時的結合方向是從左往右 下面級別沒寫結合順...
c語言邏輯運算子 關係運算子 算術運算子的優先順序是怎麼樣的
邏輯運算子裡的非運算 算術運算子 關係運算子 邏輯運算子裡的與運算 邏輯運算子裡的或運算 優先順序 算數運算 關係運算 邏輯運算。按等級高到低排列 1 非運算。2 算數運算子,例如a b,進行運算。版 3 關係運算子,例如a b,進行比 權較。4 和 也就是與運算和或運算。5 賦值運算子,例如a b...
c語言中邏輯運算子是什麼,C語言中邏輯運算子用法是什麼?
與 有0則0.0表示假,1表示真 或 有1則1.0表示假,1表示真 非 真變假,假變真 c語言中邏輯運算子用法是什麼?1 邏輯運算子是根據表示式的值來返回真值或是假值。在c語言中沒有專門的真值和假值,認定非0為真值,0為假值。2 邏輯運算子運算規則 或 兩個條件中,只要有乙個成立,則結果就成立 與 ...