c語言中ifABC,應該如何解釋滿足ABC之間的關係

2021-03-03 22:26:36 字數 5845 閱讀 6888

1樓:星璇凌

|時&&時,兩個數有一個假的就是假,

||時,兩個數有一個是真的就是真。

所以你不需專

要把整個式子算完,如果a為假,就屬可以跳過和b的運算,直接||c,如果a&&b為真,則可以直接跳過||c的運算。

至於你的閏年的判斷沒什麼問題啊。

2樓:sky錢宇

a與b都真,不需管c是否為真,條件都成立。若a和b中有一個為假,則c必須為真,條件才成立。

3樓:藍色**

當a和b 都為真或者c為真時為真。2者至少有1個要滿足

4樓:匿名使用者

&&是且,||是或,a且b求出結果,再與c求或如果a且b是真,那麼結果是真

如果a且b是假,c是真,那麼結果是真

如果a且b是假,c也假,那麼結果為假

5樓:匿名使用者

先執行 a && b

將執行得到的結果 || c

請問c語言中a&(b|c)代表什麼意思?是a與(b和c)或的結果之後再與呢,還是a和b與,或者a和c與?

6樓:匿名使用者

先計算括號裡面的 也就是

b|c然後 再把結果 和a與。

都是位操作。

在c語言中 括號優先順序高於一切。

7樓:匿名使用者

只有一個符號說明是按位計算,是b先按位與c之後按位且a

8樓:匿名使用者

括號是先計算的意思。 |或的意思。&與的意思

9樓:煙火夜空

b 和 c 後的結果,再 與 a

c語言中if(a>b>c)是什麼意思???

10樓:匿名使用者

if(a>b>c) 就是

if((a>b)>c) 先求出a>b的結果,然後這個結果再和c比較,由於a>b的結果不是0就是1,最終就是0或者1與c比較

11樓:戀★殤

a是一個值 如果a不為0則執行if中的語句 如果a為0則不執行if裡面的語句

a>b這個表示式如果成立則 a>b的值就是1 否則的話就是0 這樣明白不?

12樓:匿名使用者

a>b成立為1,不成立為0,然後與c比較

在c語言中a==b==c與a==b,b==c有區別嗎?

13樓:匿名使用者

這個太有區別了!

a==b==c 是一個關係表示式,由於運算子"=="具有左結合性,故其運算順序是:

((a==b) ==c )

若a=5,b=5,c=5,則a==b的值為1,而1==c的結果為0a==b,b==c是分別判斷a和b以及b和c關係運算補充,樓上說a==b==c是先執行b==c是錯誤的,因為c語言中只有賦值運算子和單目運算子具有右結合性,故運算物件b必然先於左側的"=="結合。

再次補充:這不是賦值的問題,沒有賦值運算子,而是關係運算

14樓:匿名使用者

||在c語言中a==b==c與a==b,b==c有區別的

a==b==c意思是將a和b的值等於c,而a==b,b==c而這一句是a的等於b,b的值等於c.比如你是在對a,b進行判斷:if(a==b==c)與if(a==b||b==c)嚴格說是不太一樣的

15樓:匿名使用者

有區別,前者執行b==c,a==b,正好與後者相反,順序不同。 結果不一定相同,和計算機的精度有關!

16樓:匿名使用者

有區別,前者先執行b==c,後執行a==b,正好與後者相反。順序不同,但結果相同。

17樓:安徽新華電腦

賦值表示式最後會返回最後被賦值的那個值。

18樓:牆頭r等紅杏

涉及到一個誰先把值賦給誰的區別。其他沒啥區別。

c語言中(a>b)?a:b和(a

19樓:學雅思

一、表達意思不同

1、(a>b)?a:b:如果a大於b,則取a,否則取b。

2、(a

二、邏輯順序不同

1、(a>b)?a:b:記憶體邏輯中先執行大於的判斷,之後執行下一步。

三、執行順序不同

1、(a>b)?a:b:在a跟b中取最大值。

20樓:幻翼高達

c語言中,「(a>b)?a:b」和「(a」的區別是當a與b相等時,前者的值是b,後者的值的是a。

條件運算子的表示式為「表示式1?表示式2:表示式3」,先求解表示式1,若其值為真(非0)則將表示式2的值作為整個表示式的取值,否則(表示式1的值為0)將表示式3的值作為整個表示式的取值。

例如:1、max=(a>b)?a:b

就是將a和b二者中較大的一個賦給max。

2、min=(a就是將a和b二者中較小的一個賦給min。

21樓:魚與鹹魚

1、本質區別

雙引號裡面的是字串, 而單引號裡面的代表字元。

2、輸出區別

str = 「a」輸出的就是a這個字母;

str = 『a』輸出的測試65

3、底層區別

用單引號引起的一個字元實際上代表一個整數,整數值對應於該字元在編譯器採用的字符集中的序列值。

22樓:go學龍

第一個若a>b為真即執行a,為假及執行b

第二個若a

23樓:匿名使用者

這個和()沒什麼關係,我詳細的講一下,你一定要看完啊:)注意理解a++和++a的區別:

a++: 先將a的值代入表示式,在表示式運算完畢後,再將a進行++處理

++a: 先將a進行++處理,再將a的值代入表示式注意對於a++這裡有一個「在表示式運算完畢後,再將a進行++處理」,b=(a++); 這是一個賦值表示式,

所以先將a的值代入表示式,必須等到賦值表示式運算完畢後,再將a進行++處理,

也就是說必須等到給b賦值完畢後,才將a進行++處理所以b=3,a=4

24樓:匿名使用者

1.a=b>c相當於a=(b>c)是一個賦值表示式,把(b>c)的值賦給a,

(1)如果b>c為真,則把1賦值給a,

(2)如果b>c為假,則把0賦值給a。

(3)執行完該表示式,僅a的值改變,b、c的值不變。

2.a==b>c也相當於a==(b>c)是一個符合表示式,先判斷(b>c)的真假,

(1)若為真,a為1則該表示式為真,即該符合表示式的值為1。

(2)若為真,a不為1則該表示式為假,即該符合表示式的值為0。

(3)若為假,a為0則該表示式為真,即該符合表示式的值為1。

(4)若為假,a不為0則該表示式為假,即該符合表示式的值為0。

(5)執行完該表示式,a、b、c的值都不發生改變。

25樓:周肆爻

定界符不同,字元常量用的是單直撇,字串常量則用雙引號長度也不同,字元常量只能有一個字元,也就是說字元常量長度為一,而字串常量可為0,也可為任意數。即使字串常量字元數量為一,長度也不是一。

例如,字串常量"h"(這手機沒雙引號)

則長度為2,字元就是h \0

26樓:新來的文盲

a比a少一維,我具體給你解釋下。

幾個元素可以組成陣列,而幾個一維陣列可以組成二維陣列,如此一直增加維數。

比如說a[0]=2,a[1]=1,a[2]=3,組成一個一維陣列,這就是a.但是,你要注意,a不是直接把這些東西都存著的,a只存首地址。

假設定義了一個二維陣列a[3][3].這時候a[0],a[1],a[2]就不再是元素了,而代表的是一個有三個元素的一位陣列,而此時的a就是一個二維陣列。如果感覺這個有點困難沒關係,等學習了指標什麼的久很好理解這個了。

再說說你給的程式,你是不是在疑問為什麼gets()直接給str1 就可以了?還有那個輸出函式,為啥只用給str1就可以?

這得給儲存方式有關,字串就是字元的二維陣列,gets()需要輸入字串的首地址,這個還算好理解,因為你應該學過了scanf()了,二者差不多,關鍵是為什麼輸出函式直接就寫了str1呢?printf()之前你學的一般都是(printf("%d",a[1]));這種型別的。這裡為啥要填一個地址引數呢?

這是因為你前面是%s s代表字串,字串本身就是二維的,因此,你當然不能只給他一個單獨的元素了,那麼,你給了首地址他如何知道你這個字串是啥呢?因為字串都是順序儲存的,更重要的是字串在結尾處有個標誌「/0」,因此,你只要給力他首地址,他就知道從**開始,從**結束了。

純手打,望採納。

27樓:

&a取址 *p取值這沒有什麼可說的。

int *p; int a;

a的地址1000h,即&a == 1000h. p是指標,它本身也有存放它的地址,設1200h,

即&p == 1200h(win32下,指標本身長度32位即4位元組,可通過sizeof(p)得到). 這樣就是用到兩塊記憶體了。

p = &a; 即p == 1000h. 這是一個地址值,本質是值,即可以加減等操作的。但是加減後的p, *p可能就無法訪問了,因為它已經不指向a了,比如p == 1004h了,如果這是在某一函式裡操作的,而1004h地址並不本程式的地址空間裡,取*p時那就非法訪問,要崩潰的;但如果1004h地址正好是這函式裡另外一個int b;變數的地址,那*p的值就是b了。

*p表示取p指向地址的值,也就是1000h上的值; a = 1; 說明1000h上的值為1,所以*p == 1;a, 它本身只是一個符號而已,這個符號代表了地址1000h起的int型長(4位元組)的一個記憶體塊, a=1,就是記憶體塊放一個值1, 如果有彙編的思想,能更形象點:[1000h] = 1,根本不需要a,b,c...之類的字元來表示,直接對記憶體地址進行存取。

28樓:星呈幻

a和p是變數,&a和*p是表示式,1和0x1000是常量a和*p表示的都是整形左值,p和&a表示的都是指標型左值,1和0x1000表示整形和指標型右值。(左右值的概念不清的話,google一下)

在記憶體中,a和p有儲存空間空間,a存放著1,p存放著0x1000,*p和&a沒有空間,他們的運算結果是在暫存器中存放的,1和0x1000也有空間,在程式的常量段存放。

*p按照stanley lippman的著作《c++ primer》中的描述,p是指標變數,*是解引用操作符,*p是一個表示式,含義是「對指標變數p進行解引用操作」,這與表示式&a的含義「取整形變數a的地址」是正好是相反的操作。

29樓:匿名使用者

首先我們明確a為一個變數 假設定義是 int a;

再明確p是一個指標,假設定義為 int* p;

當我們定義了一個a是系統會分派一個記憶體給你用來存放他的數值,如 執行了a=10;後 這個記憶體就存放了一個10的數字,當我們要用到它表示的10時,直接用a替代就可以了。

現在我們再用 p=&a "&"叫取地址符,他是一個運算子。 "&a"就表示指向a有就是上面的那個存著10的記憶體的地址。如果我們用到a的時候,很明顯,我們不能直接用p了,因為他是一個地址而不是我們需要的10這個數,那怎麼辦呢?

我們這裡就可用"*"這個符號,他表示取這個指標所指記憶體上的資料,即 *p就表示a了用法什麼的都一樣。

30樓:徐章林

第一個,先判斷b>c是否成立,如果成立,把1賦給a,否則把0賦給a

第二個,先判斷b>c是否成立,如果成立,用1和a比較,如果a=1,則整個表示式為1,否則整個表示式為0。

c語言中如何把字母變為字母,c語言中如何把第一個字母變為第二十六個字母?

c語言中 char型用bai的是ascii碼du 也就是用整數來表zhi是字母 65表示 daoa 66表示 b 以此類推 90表示 z 專 c語言中屬 的輸出函式 printf d a 輸出的是 字母a的整數編碼 65 printf c 65 按照字元格式 輸出的是 大寫字母a。想print c ...

c語言中如何輸入輸出文字,C語言中如何輸入輸出文字

需要準備的材料分別有 電腦 c語言編譯器。1 首先,開啟c語言編譯器,新建一個初始.cpp檔案,例如 test.cpp。2 在test.cpp檔案中,輸入c語言 char a 20 gets a puts a 3 編譯器執行test.cpp檔案,此時可以輸入文字。4 按回車,此時會輸出剛才輸入的文字...

c語言中如何讓指標指向已知地址,C語言中,如何讓指標指向一個已知地址

必須轉換型別,你的第二條是正確的。第一條編譯不通過的是錯誤的,因為他只是一個16進位制的數,而p是指標,是不能賦值的。也就是第一條賦值語句是將一個整數賦值給指標,肯定不行的。若是 0 是已經資料型別 是 t 那麼t p t unsigned long 0 若是在未知道的情況,可能崩潰 如果是整形 i...