C語言邏輯運算子兩側運算物件的資料型別可以是什麼

2021-03-04 04:47:14 字數 3023 閱讀 2366

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 邏輯運算子運算規則 或 兩個條件中,只要有乙個成立,則結果就成立 與 ...