c語言中,運算順序是 算數運算 關係運算 邏輯運算 賦值運算嗎?為什麼070不算算數運算

2021-04-17 18:51:59 字數 6013 閱讀 5038

1樓:

首先,你確來認你的++運算子正自確使用了

bai麼?常量不可以

du++運算的

其次zhi,你要注意++在前和dao++在後的區別,++在前的時候是先算這個++運算,然後取所有++運算的值並計算表示式,++在後的時候正好相反,要先取所有++運算的值並計算表示式,然後才進行++運算,比如說 a++ && ++b 要先算++b(前提是a的值非0,不然由於&&運算的關係,&&後面的++b會被無視),然後算a&&b,最後算a++,其實等同於if(a!=0) b++; a&&b; a++; 這三條語句

至於你說的優先順序的問題,這隻影響它的結合順序而已,運算順序那就是另一回事了,比如說++的優先順序高於&&意思就是,這個運算應做(a++) && (++b)來處理

2樓:匿名使用者

0++&&7++=0?這是什麼鬼?寫了這麼多年**今天開眼了。。。。

c語言中a-=a是什麼意思

3樓:我是果瘋

a-=a的意思為a=a-a,先用a減a,然後再將得到的結果賦值給a。-=實際上是一種縮寫形式,使得對變數的改變更為簡潔。

運算時,可以將其寫成熟悉的形式,從右向左依次計算,注意在每次計算時,變數的值會發生改變, 如不注意,就會導致錯誤的情況發生。

擴充套件資料:複合賦值運算子有下列這些:

符號 功能

+= 加法賦值

-= 減法賦值

*= 乘法賦值

/= 除法賦值

%= 模運算賦值

<<= 左移賦值

>>= 右移賦值

&= 位邏輯與賦值

|= 位邏輯或賦值

^= 位邏輯異或賦值

4樓:匿名使用者

表示a=a-a 即a=0的意思。

1、 -=是c語言中的一個複合運算子。

2、 -=為雙目運算, 形式為:

a-=b

表示含義為:

a=a-b

3、 相對於a=a-b的形式, a-=b要更簡潔,同時執行效率也略高。

4、對於a-=a,由於左右都是a,所以等效於a=0。

5樓:浙江衛健科技****

a+=a-=a*a;為連續賦值運算,從右向左計算。

於是原始的表達

式等效於:

a-=a*a;

a+=a;

也就是a=a-a*a;

a=a+a;

例如,a=5;

那麼a=a-a*a=5-5*5=-20;

a=a+a=-20 + (-20) = -40;

最終a為-40,表示式整體值也就是a最終值,一樣是-40。

6樓:我二次元穿越

從右往左算

初始值a=12

第一步:a+=a-=[a*=a] ,先算括號裡的 ——> a*=a 即 a=a*a=12*12=144

(經過第一步後,原本初始值a=12已經變成了a=144)第二步:a+=[a-=144] ,括號裡的a-=144,即 a=a-144=144-144=0

(經過第二步後,a的值變成了0)

第三步:a+=0 ,即a=a+0=0+0=0最後答案是:0

7樓:匿名使用者

這裡的a賦值10,這個式子從右往左算,先看a=a*,它表示為:a*=a<=>a=a*a=100,a-=a<=>a=a-a=100-100=0,a+=a<=>a=a+a=0+0=0。如此計算,記住要點為a*=b<=>a=a*b。

8樓:轉轉運動鞋

a的初值呢?

a初值為12時,a+=a-=a*=a結果為0步驟:這個表達

式的運算是從右向左的:

1. a*=a:a=a*a=12*12=1442.

a-=144: a=a-144=144-144=03. a+=0:

a=a+0=0+0=0。希望對你有幫助。

9樓:啊醬咩咩噠

2a-a²

具體計算步驟如下:

1、公式拆分,按照c語言計算方法和原則,這裡的「=」意思是賦值,即將等號右邊的數值賦值到左邊去。

所以公式可以依次拆分為

(1)a1=a*a

(2)a2=a-a1

(3)a3=a2+a

a是原來的賦值

2、以此計算原來的(1)(2)(3)式

結果為2a-a²

拓展資料:

c語言中計算或者賦值式是從右往左進行計算,但是計算具有一定的優先順序,以下是對優先順序的分類:

1、最高階

出現同級別運算子時的結合方向是從左往右(下面級別沒寫結合順序時,預設是從左往右)。

( )圓括號

[ ]下標運算子號

->指向結構體成員運算子

.結構體成員運算子

2、第二級

!、~、++、--、-、(型別)、*、&、sizeof。

這一級都是單目運算子號,這一級的結合方向是從右向左。

比如出現*p++,這時*和++同級別,先算右邊,再左邊。

所以*p++等價於*(p++),而不是(*p)++。

3、第**

+、-、*、/、%

這一級都是算術運算子,結合順序和數學學習中一致的,先乘除取餘數,後加減。

4、第四級

<<、>>

這是左移、右移運算子,位運算時可能需要用到。

5、第五級

<、<=、>、>=、!=、==

這些運算子也稱為關係運算子,其中<、<=、>、>=高於!=、==。

6、第六級

&、^、|

這三個符號也是位運算子號,其中內優先順序,&>^>|。

7、第七級

&&、||

邏輯與&&優先順序大於邏輯或||。

8、第八級

? :

也稱為條件運算子號,是c語言中唯一的一個三目運算子,結合順序是從右往左。

9、第九級

=、+=、-+、*=、/=、%=

這些運算子也叫做賦值運算子,除此之外,>>=、<<=、&=、^=、|=這些賦值運算子也在這一級別內,結合順序是從右往左。

10、最低階

,逗號運算子也稱為順序求值運算子,在c語言中,運算級別最低。

10樓:墨藍

a初值為12時,a+=a-=a*=a結果為0步驟:這個表

達式的運算是從右向左的:1. a*=a:

a=a*a=12*12=1442. a-=144: a=a-144=144-144=03.

a+=0: a=a+0=0+0=0。

11樓:衡陽落雁

賦值運算子的一種

等效於a=a-a

又例如a-=b

等效於a=a-b

12樓:濡穎o隨行

a-=a就是a=a-a的縮寫,同理a-=1就是a=a-1的縮寫,c語言中還支援a+=1就是a=a+1、a/=1就是a=a/1、a*=1就是a=a*1,不明白的請補充問題

13樓:匿名使用者

a+=a-=a*=a相當於a+=(a-=(a*=a))先計算a*=a 即a=a*a,a=144;

其次a-=144 即a=a-144,a=144-144=0;

最後a+=0 即a=a-0,a=0

14樓:匿名使用者

右結合的

a+=a-=a*=a等價於a+=(a-=(a*=a))所以就是0

"匿名"正解

15樓:匿名使用者

結果=0

不管a是多少

因為有這麼一段a-=a 不管之前計算出a的值是多少,經過了這一段a就=0了

因為都是自身的計算

16樓:杏子熟時

是從右向左,做運算,

例如,a初值是,2,

先是,a=a*a,後a=4後在,a=a-a,後a=0,然後,是,a=a+a,後a=0

這是這個語句的演算法過程!

17樓:千日一里尋真理

主要的區別前兩個是電磁感應,第三個是電磁共振。電磁共振效率低但可以實現距離比較遠(通常也只是在幾米內有實用價值),電磁感應的有效距離則是以感應線圈直徑來衡量的,基本等同於必須緊貼上。

同樣是電磁感應的pla和qi主要區別在於pla是利用現有的配件在電池上做文章,因此每一部手機都可以通過pla實現無線充電,而qi則是直接出場時就整合在手機內部了。

而電磁共振和電磁感應這兩種技術的區別其實非常小,可以說電磁共振是一種電磁感應的擴充套件應用,基本原理是相同的,這兩種標準的差異更多的不是在技術層面而是在專利授權的方面。因此a4wp出現的根本因素是因為前二者標準的專利壟斷。至於引數,無實驗不可能得到,做過實驗而得到資料的人他的研究成果也是有版權的不可能無償提供給公眾,既然是專利如果這些東西大家都知道而不用花錢的話a4wp也就根本不會出現了。

18樓:資利葉遊緞

這是賦值運算的一種

(優先順序為14,一共11個運算子號)+==丨=-=

&=>>=

/=^=

<<=*=%=

均是指左值

對自身的一種賦值行為

其中a(左值)+=

a*a(右值)

就變成了

a(左值)=a(左值)+(右值)

19樓:豆廣英歸娟

從右往左計算,先算a*=a,意思是a=a*a,這樣,a的值被改寫,然後計算a-=a,把重新被改寫的值代入,a=a-a,a值又被改寫,在把改寫後的值賦給a,結果為0

20樓:碧血玉葉花

如果你僅僅是求答案,感覺非常失望,我希望在看過答案之後你能夠有所思考!其實該問題的關鍵在於怎樣去定義一個階乘函式,把這個搞清楚了,就解決大問題了,其次是怎樣在主函式中呼叫函式!

#include

int fac(int n)

{int s=1;

int i;

for(i=1;i<=n;i++)

s*=i;

cout<>a>>b>>c;

fac(a);

fac(b);

fac(c);

temp=fac(a)+fac(b)+fac(c);

cout<

21樓:超覺之精

1、c語言中=!是兩個運算子擺放在一起,「=」是賦值運算子,「!」邏輯非運算子;

2、邏輯操作符一般將其運算元視為條件表示式,返回結果為bool型別;

3、首先對其運算元求值,若結果為0,則條件為假(false),否則為真(true);

4、優先順序上「!」先於「=」;所有比如有下面的式子,int i;i=!5;

5、這個理解為:根據運算子優先順序,!先於=;首先5作為!的運算元,求值!5的結果是bool型的false。

6、然後false隱士轉換成int型,即0;所以i裡面的值是整形0。

擴充套件資料:

c語言運算

1、c語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程式設計語言。

2、在表示式方面較其它程式語言更為簡潔,如自加、自減、逗號運算和三目運算使表示式更為簡單;

3、但初學者往往會覺的這種表示式難讀,關鍵原因就是對運算子和運算順序理解不透不全

特有特點

1、c語言是一個有結構化程式設計、具有變數作用域(variable scope)以及遞迴功能的過程式語言。

2、c語言傳遞引數均是以值傳遞(pass by value),另外也可以傳遞指標(a pointer passed by value)。

3、不同的變數型別可以用結構體(struct)組合在一起。

4、只有32個保留字(reserved keywords),使變數、函式命名有更多彈性。

5、部份的變數型別可以轉換,例如整型和字元型變數。

6、通過指標(pointer),c語言可以容易的對儲存器進行低階控制。

7、預編譯處理(preprocessor)讓c語言的編譯更具有彈性。

c語言中卻運算子如何使用,C語言中取反運算子如何使用

c語言經典例子之按位取反運算子 運算子 是邏輯非運算子 才是按位取反運算子。經過 運算後,回運算結果只答 有0或1 而經過 運算後,結果有多種,取決於運算元。下面通過例項來介紹這個運算子的使用方法 int a 10,b,c b a 運算後b 0,因為a不等於0 即為真 所以取非後等於0 為假 c a...

c語言位運算的問題,C語言中的位運算有什麼優點?

的優先順序比 高,的優先順序也比 高,所以k i j 3 實為k i 專 j 3 屬i 013 00000000 00001011 0打頭的是八進位制 所以 i 11111111 11110100 j 0x13 00000000 00010011,j 3 00000000 00010011 3 00...

C語言問題 位運算,C語言中的位運算有什麼優點?

char型別是以ascii碼儲存的,內部形式等同於一個unsigned 8位的整數。後面的移位操作只保留了第n位的值。由於 0 9 在ascii碼裡是連續的,把要輸出的一位數值加上 0 其實就得到了該數的字元表示。以行為單位把字串中所有字元的ascii值左移4位,如果左移後,其字元的ascii值小於...