當前位置:首頁 » 編程語言 » c語言中自減符號
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中自減符號

發布時間: 2023-01-28 21:15:50

『壹』 誰能詳細的講一下c語言中的自加自減運算符:++、--

a=1,b=a++ b的值為1,a的值為2
a=1,b=++a b的值為2,a的值為2
a=1,b=a-- b的值為1,a的值為0
a=1,b=--a b的值為0,a的值為0

『貳』 c語言的自加/自減運算符如何書寫起什麼作用有什麼特點

i++ i--就是自增自減運算!效果相當於i=i+1和i=i-1.之所以這樣兒寫只是為了簡化代碼,為程序員提供方便!

『叄』 關於C語言中自增自減運算符

#include "stdio.h"
main(){
int i=5,j=5,p,q,k,m;
p=(i++)+(i++)+(i++);
k=(++j)+(++j);
m=(++j);
q=k+m;
printf("%d,%d,%d,%d,%d,%d",p,q,i,j,k,m);
}
15,22,8,8,14,8

結果:15,22,8,8,14,8 執行結果是這樣的:
1、q表達式讀取第一個(++j) 壓入棧中(++j=6),j=6;
2、再讀取+,再讀取第二個(++j)壓入棧中(++j=7),j=7;
3、再讀取+,這時發現算符優先順序是平級的,故取出他們做加法,他們都讀取同一個j值(相同的名字指向同一地址),此時j=7,所以成了q=7+7+(++j);
4、在讀(++j)壓入棧中,(此時++j=8) ,j=8所以是q=7+7+8=22..

5、如果改成:q=(++j)+(++j)*(++j);後面的加號改為乘法。肯定是
q=8+8*8;優先順序不同了,自己思考啊·······························
代碼:
#include "stdio.h"
void main(){
int i=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)*(++j);
printf("%d,%d,%d,%d",p,q,i,j);
}
結果:15,72,8,8

『肆』 C語言中自加自減是什麼運算符

自增++
自減--
對於內置類型來說是算術運算符,返回整型結果
但是對於重載過的就要不一定了。

『伍』 C語言里--表示自減,這個自減什麼意思是不是把「--」前面的變數減1再賦給這個變數

先直接回答你的問題, 你說的基本上對,或者說你想表達的那個意思是對的,只是你描述的情況不夠全面.沒有涵括該運算符相關的其他方面.


--a; 等價於 a = a - 1;

a--; 等價於 a = a - 1;

在單純的一元運算符表達式中,兩者的效果是一樣的.就是你說的這樣.


inta=5;
//此時兩者的效果一樣
--a;//a=a-1;
a--;//a=a-1;


復雜一點的情況是,一個表達式中多於一個操作數和操作符.

這時, 你需要了解下運算符的優先順序和結合律的概念.


運算符的作用跟我上面說的是一樣的,只是你分析一個表達式的時候,需要注意下

『陸』 關於c語言列印順序和自增自減符號的問題

這里只解釋第一個printf語句,其他與此相同
其中的輸出項為:++i,--i,i++,i--,-i++,-i--
一般來說,printf函數中的輸出項表達式是從右向左開始計算的,但輸出順序與排列順序相同。因此,結果逆序看:-i--,後自減,先輸出-8,i=7;-i++,輸出-7,i自增為8;i--,i++與前兩項相同;++i,--i,先自減i為7,輸出7,再自增i=8,輸出8

『柒』 C語言的自加自減運算符

這兩個都是未定義行為,因為(y++)+(y++)+(y++)裡面沒有順序點,所以你無法保證執行完第一個y++之後,y的值是否增加了,如果增加了,那麼第二個y++就會是6。
只有順序點才能確定一個副作用被實現,在這里,副作用就是確保y++之後,y加1。
下面的那個++y亦是同理。

至於什麼是順序點,可以參考這個:
C/C++語言定義(語言的參考手冊)明確定義了順序點的概念。順序點位於:
1. 每個完整表達式結束時。完整表達式包括變數初始化表達式,表達式語句,return語句的表達式,以及條件、循環和switch語句的控製表達式(for頭部有三個控製表達式);
2. 運算符 &&、||、?: 和逗號運算符的第一個運算對象計算之後;
3. 函數調用中對所有實際參數和函數名表達式(需要調用的函數也可能通過表達式描述)的求值完成之後(進入函數體之前)。

『捌』 在C語言中自增自減運算符有什麼作用

這是一類特殊的運算符,自增運算符++和自減運算符—對變數的操作結果是增加1和減少1.例如:
--Couter; Couter-; ++Amount; Amount++;
看這些例子里,運算符在前面還是在後面對本身的影響都是一樣的,都是加1或者減1,但是當把他們作為其他表達式的一部分,兩者就有區別了。運算符放在變數前面,那麼在運算之前,變數先完成自增或自減運算;如果運算符放在後面,那麼自增自減運算是在變數參加表達式的運算後再運算。這樣講可能不太清楚,看下面的例子:
num1=4; num2=8; a=++num1; b=num2++ a=++r
+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語言的前置++和後置++,稱為自增運算符
前置--和後置--稱為自減運算符,下面以自增運算符的區別來加以介紹,自減類似

如果單獨寫 自增運算符為一個語句,二者沒有區別
++i; 和 i++; 都是讓i+1賦值給i
但是如果把自增運算符寫入到另外表達式中二者就有很大區別了

例如
i=5;
j=i++;
執行後i為6,j為5
i=5;
j=++i;
執行後i為6,j為6