C語言中能不能用連等來進行判斷?

2025-06-16 11:55:29 字數 3489 閱讀 8471

1樓:我若在床邊

不對,m==n如果為真返回值為1,然後變成1==s[0];判斷與目的不符,錯。

2樓:夏天的青雲

不能,你要用&&來連線。

如:m==n &&n==s[0]..

c語言中什麼時候不能連等 什麼時候能連等?

3樓:12345額時代

1、首先在電腦中開啟, 新建乙個vc專案,新增標頭檔案,如下圖所示。

2、然後新增main函式體,如下圖所示。

3、接著定義score變數,型別int,如下圖所示。

4、然後定義grade變數,型別char,使用scanf給score賦值。

5、然後使用條件運算子巢狀,使用printf列印grade,如下圖所示。

6、執行程式,如下圖所示就完成了。

4樓:網友

你是說巢狀使用賦值運算子=嗎? 這個初始化的時候不能用 比如 int a=b=c=5 是錯的。

你可以 int a,b,c; a=b=c=5;

還是說 ==和=的區別? ==意思是等於 多用於條件判斷語句 如果兩邊的運算元相等則值為真。

繼續執行該語句 否則執行下一條語句。

是賦值 吧右邊的數賦給左邊的變數 右邊只能是變數不能是表示式或者常量。

5樓:失落間諜

你說的是像a=b=c=d這種嗎?

c語言中允許出現連等的形式嗎???

6樓:曾德智

你上面說的寫法是可以的!但是如果寫成這樣舊錯了int a=b=c=d=1;

c語言中不允許出現這樣的連等式!

但先定義然後再再連等式可以的。

7樓:網友

你是說賦值=還是邏輯==

是可以的int a=10;int b=c=a;

但是==的話一般來說都是錯誤的a==b==c實際上是判斷(a==b)(0或1)是否等於b的。

8樓:二oo二

可以在賦值的時候等連,如a=b=c=1.

c語言中,如果要判斷兩個數是否同時為1,能不能用連等表示式?

9樓:網友

上面的不行,邏輯判斷連續來語法上是沒有問題的,但是得不到想要的結果,呵呵。

道理應該很簡單,如a == b == 1這個,運算順序是先運算a == b返回值是0或者1,再讓這個0或者1和這個後面的表示式運算,也就是0或者1和後面的1運算,0==1或者1==1來做。

所以說語法上沒有問題,但是結果不一定是你想要的如果ab都為2,那麼a==b返回1,和1運算,那麼返回1,但是ab是2,但不是1,可是返回1,是正確的。

明白沒???

10樓:網友

==運算子的求值順序是「從左到右」,那麼對於a == b == 1來說,先計算a(假如是表示式的話),再計算b,如果滿足a == b就決定了該邏輯表示式的值,不再進行 == 1的比較運算,這是由於「短路」效應造成的,等效於a == b ||b == 1,顯然與你的目的不符,所以說,要判斷a和b是否同時為1,不能寫成if (a == b == 1),而只能寫作if((a == b) &b == 1)),或if((a == 1) &b == 1)),或if((1 == a) &1 == b))等。

11樓:昌大少年

以我的經驗,實際中不能用連等。

假設語法合法,如果從左到右計算的話a==b結果為1,剛巧 1==1,最終結果為1,可以通過。

c語言裡 if裡面不能連續比較嗎?為什麼要用&&來判斷?

12樓:無法無天

1<=x得到的是邏輯值(即非0為1,0為0)然後會用這個值1或0和10比較。

就好比你 if(1<2) 這個比較,計算機如何知道這個判斷的大小?就是因為比較之後會有乙個邏輯值返回,if(1<2) 為1所以才能執行if裡面的語句。

可曾記得c教材裡的一句話,非0為真,0為假?

13樓:桜月輝夜

c語言裡不能這樣寫,1<=x<10會從左往右計算。

首先1<=x得到結果0或1,接著是上面得到的這個結果與10進行比較,而不是你所以為的那樣。

14樓:網友

可以這樣寫。

if(x > 1 &&x < 10) y = 2*x;// &&是邏輯條件連線符,不能少。

else

c語言中什麼時候不能連等 什麼時候能連等?

15樓:網友

①「=」是在賦值的時候使用的,比如:int a=3,初始化a為3;

==」是在做判斷的時候使用的,比如:if(a==3),a是否等於3。

16樓:

結構指標變數中的值是所指向的結構變數的首位址。 cout <<"this is test code of c++ class: "<< endl;

17樓:天空空

給變數賦初值時可以連等。

c++判斷條件不能出現連等嗎

18樓:網友

這個肯定不行啊,因為按照執行順序,先判斷b==c,結果是false或者是true,也就是0和1,如果你的a不是這兩個值的話那返回的就一直是false,不會得到true的結果。

19樓:網友

不可以 你可以這樣理解 因為第乙個等號是賦值 第二個等號作為比較 那麼a==b==c的時候就等於形成了非正常的運算 (a==b)==c 這樣的運算 這樣的運算無論是實際邏輯還是編譯認可的邏輯都是不對的。

20樓:網友

判斷邏輯當然可以連等了!!

只是你沒有注意關鍵。

先執行a==b結果是(true或false)再和c比。

那麼c的==是和a==b的結果進行比較而已。

例如: int a=1, b=1 ; bool c=true;

那麼 a==b==c 的結果就是true。

當然這個和你的原意是不一樣的。

總結:邏輯運算子是可以連寫的,但是後面的是和前面操作符的結果進行比較。

21樓:網友

這相當於條件,是不能這樣寫的,要分開的,才能正常的工作。還有就是在乙個if條件的括號裡,有多個條件的話,就合理的運用 ||或)和 &&與)將幾個條件連線起來,找本c語言書看看吧,這是很基礎的東西,多練就好了。

22樓:網友

不可以那麼寫。

大於小於同理。

還有要注意的就是優先順序的問題,比如&&比||優先順序高等等,不過最好的辦法是都加括號。

23樓:網友

其實在程式設計的時候不知道優先順序情況下 多用小括號。這種不要太糾結了。在不同到編譯器編寫**都會有些不同到優化情況。

c語言的巨集定義能不能修改,C語言中怎樣修改巨集定義呢

你定義了。在程式中是不能改變的。只能在定義的地方修改。程式在預處理期間進行值替換。比如巨集定義在一開頭定義 define n 10,那麼接下來所有的n都是10,巨集定義一旦定下除非你修改 否則都無法修改巨集定義 巨集定義在程式內是不可改變的,只能在定義的地方只能在定義的地方修改。程式在預處理期間進行...

為什麼c語言中不能用scanf函式反覆對同字元

int a scanf d a scanf d a scanf d a a是最後一次輸入的那個值 c語言中如何使輸出的字串佔8個字元 include int main 直接寫 printf 8s n 你的字串 就可以了 include stdio.h int fab int n char a 8 v...

c語言中陣列長度不能用變數定義嗎

1 c語言e68a8462616964757a686964616f31333365646235中不支援。c 中支援變長陣列 你可以自行度娘變長陣列和alloca函式 但是因為其實在棧上分配,不被推薦使用。做為解決方案,你可以使用c式的malloc函式或者c 式的new函式來在堆上動態分配記憶體,這樣...