C 中 a是變數,請問if a10 和if 10a 有什麼區別?謝謝

時間 2022-07-18 18:10:14

1樓:匿名使用者

功能上沒什麼區別,但是把數字寫在前面可以防止筆誤而出錯,

比如,if(a>=10) 或者if(a==10) 因為筆誤而少打了一個符號,

不小心打成了 if(a=10) ,這句在語法上沒有問題,賦值,然後判斷,所以編譯器不會報錯,但是邏輯意義就跟原來大不相同了。

但是如果是if(10==a)或者if(10<=a),不小心少打了一個符號變成了

if(10=a),因為10是常量,不能被賦值,所以編譯器會直接報錯,從而避免因為筆誤出現問題

2樓:匿名使用者

if(a>=10)和if(10<=a) 沒區別if(a==10)和if(10==a) 沒區別為什麼要寫成10==a這種形式呢?

原因是if(a==10)容易漏寫一個等號,就成了if(a=10)變成了把10賦給a

而寫成10==a,如果漏寫'=',變成10=a,編譯器會給出錯提示,因為不能

把一個變數的值賦給一個常量,這樣就能借助編譯器來檢查錯誤了。

3樓:匿名使用者

寫的一樣什麼區別也沒有,如果掉了個等於

就和myicefox說的一樣

4樓:匿名使用者

我覺得不同,前面判斷a是不是等於10,而後面的是判斷a是不是為真。。

5樓:手機使用者

本質上沒什麼區別,實際上都是一個意思,只不過是寫法不同

c++中,if(a=12)和if(a==12)有什麼區別,還有if(a>100 & b>50)和if(a>100 && b>50)有什麼區別呢?

6樓:

1、if(a=12)即把12賦值給變數a,而if中預設會把12認為是true,因此必然執行跟在這個if後的語句塊。if(a==12)即比較a是否等於12,結果返回true或false,這取決於a的值。

2、&是按位運算子,用4位為例,當a大於100時,比較式返回0001(true),當b也大於50時,同理返回0001(true),此後將兩者進行位運算,0001&0001=0001。而&&是邏輯運算子,當a>100以及b>50同時為真才執行。

7樓:阿冬

一個等號是賦值運算,含義是把右邊表示式的結果送給左邊的變數;

兩個連續的等號是比較相等的運算,如果左右兩邊的值相同,則為真,否則為假。

一個&表示按位進行與運算

兩個&&表示邏輯與運算

if(a=1)和if(a==1)有什麼區別?

8樓:浪花滌英

if(a=1)和if(a==1)的區別在於:

在c & c++ 程式設計語言中,等號「=」是賦值運算子, a=1 表示把1賦給內變數a,於是a的值就是1。其

容中a必須是左值,不能為右值如常量等。

兩個等號「==」是關係運算子,表示等於。

if(a=1)實際上等於兩個操作,

1. a = 1

2. if(a)

那麼if(1)其實就是if(true)就是條件為真。

而if(a==1) 是判斷a是否等於1,這裡a可以為左值,也可以是右值。

9樓:匿名使用者

a=1表示把1賦給a

於是a的值就是1

那麼if(a=1)實際上等於兩個操作,

1. a = 1

2. if(a)

那麼if(1)其實就是if(true)就是條件為真。

而if(a==1)

是判斷a是否等於1.

10樓:匿名使用者

a=1,if(a=1)與if(1)的效果是一樣bai的,if(a=1)後面的語句

du總是執行

a==1,if(a==1)與zhia的值有關,如dao果a=1,那麼

內執容行if(a==1)後面的語句

如果a!=1,那麼不執行if(a==1)後面的語句希望對你有幫助

11樓:匿名使用者

if(a=1)可以這樣寫,它表示如果將1賦給a賦成功的話....

下面的那個迴圈體只會執行一次哈啦!

12樓:緣~系

不一樣的~~~a=1是算術中的賦值關係,a==1是兩者關係表示,if括號中用a=1是達不到目的效果的~!因為她不能判斷真或假~!

13樓:匿名使用者

a=1是一du個賦值語句,作用是

zhi將1這個值賦給變數daoa,這個語句的值就是專a的值;而a==1是一個判斷

屬語句,當a!=1時,這個判斷語句的值為0,也就是真時語句的值為1,假時為0.if語句要用的是()內語句的值。

14樓:匿名使用者

當然不一樣拉

首先c中a=1是一種賦值表示式而a==1是一種關係運算表示式a=1是將1賦值給a變數(單元) 而專a==1是用a變數的屬值與1進行比較的

至於放在條件中如何運算,參考前面別人問過的。在此不做回答了。

15樓:風雨在我

不一樣。來

前者:如果

自a的資料型別是整型bai、實型、指標型別du,則表示式「if(a=1)」恆為zhi1;若a的資料型別為dao其他型別,例如共用體、陣列之類,則會報錯,而無法編譯。

後者:a==1是關係運算表示式,當且僅當a為整型(或實型)且其值為1的時候,表示式 if(a==1)才為1,否則為0;

希望 採納。

16樓:

a=1的值一定是1

a==1 , 如果相等就為1 , 如果不等 就為0

17樓:微俊

=號是賦值 ==是等於

18樓:紫菱水花

前面的那個是賦值,後面的那個是等號,大多數的情況下面用==多些

19樓:_胡黎黎

一個體=是賦值、兩個==才是我們學數學的等於。

20樓:匿名使用者

=賦值==表判斷~兩者區別大

c++中if(a[i]%2) j+=a[i];和if(a[i]%2==0) continue;分別是什麼意思?

21樓:匿名使用者

if(a[i]%2) j+=a[i];分析:

if(a[i]%2):如果a[i]除2餘數不等於0, 則執行j+=a[i];(就等於j =j+a[i])

if(a[i]%2==0) continue;這個在程式中沒看到呀,只能憑空說下了:

if(a[i]%2==0):如果a[i]除以2的餘數為0, 則不再執行迴圈語句中這之後的語句, 繼續下一次的迴圈...

22樓:不帥人不愛

if語句懂吧?如果條件真,怎執行下一句,否則執行if外的語句。a[i]%2是對2取模運算,如果a[i]是偶數,怎結果為0,就不執行if後面的語句j+=a[i];也就是隻有a[i]是奇數時才執行該句。

if(a[i]%2==0) continue;跟上面的正好相反,當a[i]是偶數才執行 continue。即跳到最近的迴圈。

23樓:匿名使用者

倒是要問問lz是什麼意思……問的問題不清不楚……

if(a[i]%2) j+=a[i];意思是如果a[i]為奇數就執行下面的語句

if(a[i]%2==0) continue;意思是如果a[i]為偶數就跳過這次迴圈,繼續下一個迴圈

4 設有變數定義:int a=10,c=9; 則表示式 (--a!=c++)?—a:++c的值是 。

24樓:匿名使用者

#include

#include

#include

using namespace std;

int main()

只是一個:引導的選擇問題而已,很簡單。

輸出結果是:10。

25樓:汪好帥

a自減變成9 c後加還是9。--a == c++ 條件不滿足,執行完c後加 =10 再執行++c ,上一步c =10,前加變成 11

26樓:程式設計師

11 主要注意下c++中唯一一個三元運算子以及前置++和後置++在表示式中的運算順序

樓主可以自己上機除錯一下啊!這對你是很有幫助的哈!

27樓:匿名使用者

11--a,減了再用;

c++;用了再加;

++c;加了再用;

c++語言中if(a

28樓:匿名使用者

是將a,b,c從大到小排列。

但是好像有點問題,該**可以編譯嗎?

變數是不可以賦值給指標的哦!

29樓:仰桖楓

將a,b,c從大到小排列。

30樓:匿名使用者

把abc中的資料按照從小到大的順序排序,a中資料最小

假定a和b為int型變數,則執行以下語句後b的值是: a=1;b=10; do{b-=a;a++;}while(b--<0);

31樓:匿名使用者

額 一開始我被糊弄抄到了 後來用printf一輸出才發現原來錯得糊弄離譜啊

b=10 a=1 b-=a 等價於b=b-a 所以b=9 a++ 所以a=2 重頭戲來啦

while(b--<0) 嘿嘿 注意是《號哦 b--<0 是先用b的值與0比較大小 再b自減1 也就是說9<0 當然是假啦 所以就退出迴圈 又b要自減1 所以最後b=8呵呵

32樓:鐵書包

這是正常的,因為迴圈只執行了一遍!

do....while()的用法是執行一遍之後判斷是否符合條件!

對應本題就是執行一遍之後,檢查b--是否小於0,若果小於0則繼續執行,不小於0則退出!

33樓:逆筆回鋒

在do執行完後,b變成9

在while語句中,先判斷b<0==false再進行b--;

所以b==8;

又例a[3]=;

a=1;

那麼a[++a]==2;a[a++]==1;但無回論是哪一個答a都變成了2

34樓:匿名使用者

不是8能是什麼?

一開始, a=1, b=10

b-=a; 這時b=9了

a++; 這時a=2了,b還是9

while(b--<0) ; 這時b為8了,所以條件不成立,跳出迴圈。

所以,最後b=8.

35樓:美麗的華

首先b-=a,這時b=10,a=1,執行後b=9,a=2

然後while(b--<0),b--了一次,b=8

36樓:匿名使用者

其實,來你應該是記錯了,do-while語句自裡面while(表示式)必須在判斷表示式為真,才可以繼續進行下一輪的迴圈,這裡說的是b--<0,是假的,所以停止迴圈,退出語句。b--使用過後,自減,得出來b值為8.

c++中 int(*a)[10]與 int *a=new int[10] 有什麼區別 25

37樓:

區別太大了!

int (*a)[10];——bai聲du明a是個指向具有10個int型元素的

zhi一維數dao組的指標專。

int *a=new int[10];——等屬號左邊是宣告一個int *型指標a,等號右邊是動態申請10個int型資料的連續空間;=號是將成功申請的空間的第一個元素的地址賦給int *型指標a。

c++中**: int a; cin>>a; if(a++>5)cout<

38樓:周杰棍的雙節龍

起初a=4

在執行a++>5時,應該是這樣的順序 a=4然後和5比較 ,再a自加1,此時a=5

所以它不滿足括號中的條件,因而執行else的語句a=5時執行cout<

應該是輸出5之後,再讓a自減1

當遞增運算子出現在運算元之前時,返回值是遞增之後賦給變數的值。例如,x=1,a=++x,a就等於2了,然後x也等於2 ;

如果是字尾形式,那麼返回值不會變 ,例如y=1, b=y++,這時b等於1,而y變成了2

39樓:匿名使用者

初始值a=4,a++表示式本身=4<5,但是a已經+1變成5了,所以執行else,表示式a--為5,但是a本身已經變成了4.而輸出結果是a--這個表示式的值,所以是5.

40樓:匿名使用者

開始時a=4,a++先判斷a=4<5然後a=a+1=5,輸出時a為5,然後a=a-1=4 .所以輸出的是5,輸出完之後變為4

c 中我想定義名字中帶變數的,c 中我想定義一個名字中帶變數的

define runname xml name param name name param void main 陣列不就是嗎,第一次a 0 第二次a 1 第三次a 2 c 中我想定義一個名字中帶變數的 尚雪珍匡真 這種情況下,區域性變數會遮蔽掉名字空間的變數,要訪問名字空間內的變數就要加上域字首 比...

C中如何定義全域性的巨集變數 define)

c 是純粹的面嚮物件語言.和c 與c完全不同.所以不要認為他們是相似的.如果要實現c 的全域性巨集定義可以建立一個類做為專門的設定類.在其它類中using這個類或者用同一個namespace 或者使用配置檔案configurationmanager來定義全域性變數.使用xml也行 如果是debug,...

C在方法中引用另類的全域性變數,C 在方法中引用另一個類的全域性變數

像這種需求應該在類a中宣告靜態的flag 然後在類a的時間中賦值,之後再通過類b引用就是賦值後的值了 public class a 在類b中 通過a.flag 就能引用了。c 中一個類如何訪問另一個類的變數 基本上就是一樓的方法 c 如何呼叫其他類的變數 b類裡面的變數宣告的時候帶不帶static?...