c語言中各個運算子代表什麼?就是啥的

時間 2022-07-27 05:57:32

1樓:f涅

a++:表示a加1

a--:表示a減1

a==b:表示a和b相等,用在條件判斷裡,比如 if(a==b);//如果a等於b,就執行裡的內容

2樓:老猿

下面按優先順序列出了常用的每個運算子的名稱,如果還有需要具體化的請提問:

1級(左結合)

() 圓括號;下標運算子;->指向結構體成員運算子;. 結構體成員運算子。

2級(右結合)

!邏輯非運算子;~按位取反運算子;++字首增量運算子;--字首減量運算子;+正號運算子;-負號運算子;(型別)型別轉換運算子;*指標運算子;&位址運算子;sizeof長度運算子。

3級(左結合)

*乘法運算子;/除法運算子;%取餘運算子。

4級(左結合)

+加法運算子;-減法運算子。

5級(左結合)

《左移運算子;>>右移運算子。

6級(左結合)

<、<=、>、>=關係運算子。

7級(左結合)

==等於運算子;!=不等於運算子。

8級(左結合)

&按位與運算子。

9級(左結合)

^按位異或運算子。

10級(左結合)

|按位或運算子。

11級(左結合)

&&邏輯與運算子。

12級(左結合)

||邏輯或運算子。

13級(右結合)

? :條件運算子。

14級(右結合)

=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=賦值運算子。

3樓:緣雪淏

++自增,如:x++,相當於先y=x,再x=x+1;而++x,相當於先x=x+1,在y=x;

++自減,如:x--,相當於先y=x,再x=x-1;而--x,相當於先x=x-1,在y=x;

==是等號判斷,如:if(x==1) printf("1");

c語言中算術運算子%,++,— —,都是什麼意思?能舉例子說明嗎?

4樓:幻翼高達

c語言中,算術運算子「%」代表模(取餘)運算,「++」代表變數自增運算,「--」代表變數自減運算。

1、模運算「%」

「模」是「mod」的音譯,模運算多應用於程式編寫中。 mod的含義為求餘。模運算在數論和程式設計中都有著廣泛的應用,從奇偶數的判別到素數的判別,從模冪運算到最大公約數的求法,從孫子問題到凱撒密碼問題,無不充斥著模運算的身影。

c語言用「%」代表模運算,例如7%2=1、8%5=3等。

2、自增運算「++」

c語言用「++」代表自增運算,分為字首自增和字尾自增,其效果均為自身變數值+1。字首自增例如「a=5;b=++a;」,則執行結果是「a=6,b=6」。字尾自增例如「a=5;b=a++;」,則執行結果是「a=6,b=5」。

3、自減運算「--」

c語言用「--」代表自減運算,分為字首自減和字尾自減,其效果均為自身變數值-1。字首自減例如「a=5;b=--a;」,則執行結果是「a=4,b=4」。字尾自減例如「a=5;b=a--;」,則執行結果是「a=4,b=5」。

擴充套件資料:

c語言常用運算子:

+:加法

-:減法

<<:位左移

>>:位右移

<:小於

<=:小於等於

>:大於

>=:大於等於

+=:加賦值運算

-=:減賦值運算

*=:乘賦值運算

/=:除賦值運算

%=:模賦值運算

5樓:匿名使用者

c語言中,% 是求餘運算子(模運算子),特點是:

是雙目運算子,具有左結合性。

要求參與運算的量均為整型,不能應用於float或double型別。

求餘運算的結果等於兩數相除後的餘數,整除時結果為0。

如:5%3=2  4%3=1  3%3=02%3=2  1%3=1  0%3=0

「++」是自增1運算子,其功能是使變數的值自增1;

「--」是自減1運算子,其功能是使變數值自減1。

自增1,自減1運算子均為單目運算,都具有右結合性。可有以下幾種形式:

++i:i自增1後  再參與其它運算。

--i:  i自減1後  再參與其它運算。

i++:i參與運算後,i的值再自增1。

i--:  i參與運算後,i的值再自減1。

如:int x,y;

x=10;  y=x++;   //結果y=x=10, 然後  x=x+1=11

x=10;  y=++x;   //結果 x=x+1=11,然後 y=x=11

自減例子,與自加同!

6樓:充實生活

%是求餘的意思,是乙個二元操作符,舉例: 保證a, b兩個變數是整數,那麼 a%b的意思就是求a除以b得到的餘數。 ++ -- 都是一元的運算子,是將乙個變數本身自增1或者自減1操作使用,如變數a=5; 那麼a++之後a的值變為6,但是要區分a++和++a這兩種,兩中操作後a的值都是6,但是如果使用c=a++;和c=++a;得到得到的c的值前者是5,後者是6。

就是說++符號在前面的話就是自增後再賦值,在後面則是先賦值在自增。--自減符號與++類似使用

7樓:哈就可泛海

%d a+b a-b

c語言中的"++"還有"=="之類的符號各是什麼意思阿

8樓:匿名使用者

一、賦值運算子

賦值語句的作用是把某個常量或變數或表示式的值賦值給另乙個變數。符號為『=』。這裡並不是等於的意思,只是賦值,等於用『==』表示。

注意:賦值語句左邊的變數在程式的其他地方必須要宣告。

得已賦值的變數我們稱為左值,因為它們出現在賦值語句的左邊;產生值的表示式我們稱為右值,因為她它們出現在賦值語句的右邊。常數只能作為右值。

例如:count=5;

total1=total2=0;

第乙個賦值語句大家都能理解。

第二個賦值語句的意思是把0同時賦值給兩個變數。這是因為賦值語句是從右向左運算的,也就是說從右端開始計算。這樣它先total2=0;然後total1=total2;那麼我們這樣行不行呢?

(total1=total2)=0;

這樣是不可以的,因為先要算括號裡面的,這時total1=total2是乙個表示式,而賦值語句的左邊是不允許表示式存在的。

二、算術運算子

在c語言中有兩個單目和五個雙目運算子。

符號 功能

+ 單目正

- 單目負

* 乘法

/ 除法

% 取模

+ 加法

- 減法

下面是一些賦值語句的例子, 在賦值運算子右側的表示式中就使用了上面的算術運算子:

area=height*width;

num=num1+num2/num3-num4;

運算子也有個運算順序問題,先算乘除再算加減。單目正和單目負最先運算。

取模運算子(%)用於計算兩個整數相除所得的餘數。例如:

a=7%4;

最終a的結果是3,因為7%4的餘數是3。

那麼有人要問了,我要想求它們的商怎麼辦呢?

b=7/4;

這樣b就是它們的商了,應該是1。

也許有人就不明白了,7/4應該是1.75,怎麼會是1呢?這裡需要說明的是,當兩個整數相除時,所得到的結果仍然是整數,沒有小數部分。

要想也得到小數部分,可以這樣寫7.0/4或者7/4.0,也即把其中乙個數變為非整數。

那麼怎樣由乙個實數得到它的整數部分呢?這就需要用強制型別轉換了。例如:

a=(int) (7.0/4);

因為7.0/4的值為1.75,如果在前面加上(int)就表示把結果強制轉換成整型,這就得到了1。那麼思考一下a=(float) (7/4);最終a的結果是多少?

單目減運算子相當於取相反值,若是正值就變為負值,若是負數就變為正值。

單目加運算子沒有意義,純粹是和單目減構成一對用的。

三、邏輯運算子

邏輯運算子是根據表示式的值來返回真值或是假值。其實在c語言中沒有所謂的真值和假值,只是認為非0為真值,0為假值。

符號 功能

&& 邏輯與

|| 邏輯或

! 邏輯非

例如:5!3;

0||-2&&5;

!4;當表示式進行&&運算時,只要有乙個為假,總的表示式就為假,只有當所有都為真時,總的式子才為真。當表示式進行||運算時,只要有乙個為真,總的值就為真,只有當所有的都為假時,總的式子才為假。邏輯非(!

)運算是把相應的變數資料轉換為相應的真/假值。若原先為假,則邏輯非以後為真,若原先為真,則邏輯非以後為假。

還有一點很重要,當乙個邏輯表示式的後一部分的取值不會影響整個表示式的值時,後一部分就不會進行運算了。例如:

a=2,b=1;

a||b-1;

因為a=2,為真值,所以不管b-1是不是真值,總的表示式一定為真值,這時後面的表示式就不會再計算了。

四、關係運算子

關係運算子是對兩個表示式進行比較,返回乙個真/假值。

符號 功能

> 大於

< 小於

>= 大於等於

<= 小於等於

== 等於

!= 不等於

這些運算子大家都能明白,主要問題就是等於==和賦值=的區別了。

一些剛開始學習c語言的人總是對這兩個運算子弄不明白,經常在一些簡單問題上出錯,自己檢查時還找不出來。看下面的**:

if(amount=123) ……

很多新人都理解為如果amount等於123,就怎麼樣。其實這行**的意思是先賦值amount=123,然後判斷這個表示式是不是真值,因為結果為 123,是真值,那麼就做後面的。如果想讓當amount等於123才執行時,應該if(amount==123) ……

五、自增自減運算子

這是一類特殊的運算子,自增運算子++和自減運算子--對變數的操作結果是增加1和減少1。例如:

--couter;

couter--;

++amount;

amount++;

看這些例子裡,運算子在前面還是在後面對本身的影響都是一樣的,都是加1或者減1,但是當把他們作為其他表示式的一部分,兩者就有區別了。運算子放在變數前面,那麼在運算之前,變數先完成自增或自減運算;如果運算子放在後面,那麼自增自減運算是在變數參加表示式的運算後再運算。這樣講可能不太清楚,看下面的例子:

num1=4;

num2=8;

a=++num1;

b=num2++;

a =++num1;這總的來看是乙個賦值,把++num1的值賦給a,因為自增運算子在變數的前面,所以num1先自增加1變為5,然後賦值給a,最終a也為5。b=num2++;這是把num2++的值賦給b,因為自增運算子在變數的後面,所以先把num2賦值給b,b應該為8,然後num2自增加1變為 9。

那麼如果出現這樣的情況我們怎麼處理呢?

c=num1+++num2;

到底是c=(num1++)+num2;還是c=num1+(++num2);這要根據編譯器來決定,不同的編譯器可能有不同的結果。所以我們在以後的程式設計當中,應該盡量避免出現上面複雜的情況。

六、復合賦值運算子

在賦值運算子當中,還有一類c/c++獨有的復合賦值運算子。它們實際上是一種縮寫形式,使得對變數的改變更為簡潔。

total=total+3;

乍一看這行**,似乎有問題,這是不可能成立的。其實還是老樣子,'='是賦值不是等於。它的意思是本身的值加3,然後在賦值給本身。為了簡化,上面的**也可以寫成:

total+=3;

復合賦值運算子有下列這些:

符號 功能

+= 加法賦值

-= 減法賦值

*= 乘法賦值

/= 除法賦值

%= 模運算賦值

<<= 左移賦值

>>= 右移賦值

&= 位邏輯與賦值

|= 位邏輯或賦值

^= 位邏輯異或賦值

上面的十個復合賦值運算子中,後面五個我們到以後位運算時再說明。

那麼看了上面的復合賦值運算子,有人就會問,到底total=total+3;與total+=3;有沒有區別?答案是有的,對於a=a+1,表示式a被計算了兩次,對於復合運算子a+=1,表示式a僅計算了一次。一般的來說,這種區別對於程式的執行沒有多大影響,但是當表示式作為函式的返回值時,函式就被呼叫了兩次(以後再說明),而且如果使用普通的賦值運算子,也會加大程式的開銷,使效率降低。

七、條件運算子

條件運算子(?:)是c語言中唯一的乙個三目運算子,它是對第乙個表示式作真/假檢測,然後根據結果返回兩外兩個表示式中的乙個。

《表示式1>?《表示式2>:《表示式3>

在運算中,首先對第乙個表示式進行檢驗,如果為真,則返回表示式2的值;如果為假,則返回表示式3的值。

例如:a=(b>0)?b:-b;

當b>0時,a=b;當b不大於0時,a=-b;這就是條件表示式。其實上面的意思就是把b的絕對值賦值給a。

八、逗號運算子

在c語言中,多個表示式可以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後乙個表示式的值。

假設b=2,c=7,d=5,

a1=(++b,c--,d+3);

a2=++b,c--,d+3;

對於第一行**,有三個表示式,用逗號分開,所以最終的值應該是最後乙個表示式的值,也就是d+3,為8,所以a=8。對於第二行**,那麼也是有三個表示式,這時的三個表示式為a2=++b、c--、d+3,(這是因為賦值運算子比逗號運算子優先順序高)所以最終表示式的值雖然也為8,但a2=3。

還有其他的如位邏輯運算子,位移運算子等等,我們等到講位運算時再說明。

九、優先順序和結合性

從上面的逗號運算子那個例子可以看出,這些運算子計算時都有一定的順序,就好象先要算乘除後算加減一樣。優先順序和結合性是運算子兩個重要的特性,結合性又稱為計算順序,它決定組成表示式的各個部分是否參與計算以及什麼時候計算。

下面是c語言中所使用的運算子的優先順序和結合性:

優先順序 運算子 結合性

(最高) () -> . 自左向右

! ~ ++ -- + - * & sizeof 自右向左

* / % 自左向右

+ - 自左向右

<< >> 自左向右

< <= > >= 自左向右

== != 自左向右

& 自左向右

^ 自左向右

| 自左向右

&& 自左向右

|| 自左向右

?: 自右向左

= += -= *= /= %= &= ^= |= <<= >>= 自右向左

(最低) , 自左向右

c語言的或運算和自增運算,c語言中指標運算子 和自增運算子 的優先順序

a與 a是先加 減 再用 a 與a 是先用後加 減 是如果前面運算為0後面就不運算 是如果前面運算為1後面就不運算 a 與 a的運算都比 高 問題1 int a,b a b 1 a b a b a a就為2,所以b 1後面就不運算了 include void main 問題二 int a,b a b...

c語言位運算,c語言中 與 的區別

這個很簡單,你開啟電腦的計算器,將521輸入,然後用二進位制顯示,你看到的是 1000001001,123是 1111011 與123 按位與的結果就是0000 1001 用十進位制顯示的時候就是9,其他的計算也是這樣算出來的,你試下就知道了,在此我就不一一舉例了。這是與操作,只有1 1才能是1 這...

C語言的逗號運算子,C語言中逗號運算子怎麼用

是的,賦值運算的優先順序高於逗號運算子,所以先計算y x a b 再計算 b c 整個逗號表示式y x a b b c 的值為b c 然而並沒有卵用 沒有賦值 故 最後y x a b 你的理解是正確的。我估計是 程式漏了一對 小括號 y x a b b c 意思是把逗號 表示式的 值賦給y 這樣就有...

c語言的加加減減,c語言中的減減加加運算的演算法是

int i 8 i i 1 printf d n i 右邊的式子等價於 printf d n i i的意思是在使用i之前,先給i加上1 加上1後i的值為9,變為9後再輸入,所以第乙個輸出9 i i 1 printf d n i 同理 這裡 printf d n i i的意思是在使用i之前先減1,經過...

c語言中return用法,C語言中return用法

return是個好東西 第乙個作用,也就是他的真實作用 返回值,這個返回值是和函式的型別有關的,函式的型別是什麼,他的返回值就是什麼 比方主函式int main 這裡就必須有乙個return,只有void時可以不用返回值。功能函式 int fun 這個時候fun函式的作用就是返回乙個int 型別的值...