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函式來在堆上動態分配記憶體,這樣...