1樓:匿名使用者
++—在前先+—,在後後+—。你記住這個就好做題啦。
int a=1,b=1;
a=++a+b;
b=(—b)+a;
b);a=++a+b要先算++a,a=2.在算a=2+b=2+1=3b同上。int a=2,b=1;
a=a--+b;
這個輸出a的值是3.要先算a=a+b=3.後算a--
2樓:菊花鏈
a+++b相當於:
a+b;++a;
不同的編譯器會產生不同的結果所以儘量避免這種表達方式。
3樓:花和尚流氓兔
我覺得這個問題自己去實踐一下最好了~這樣還記憶深刻。你用把各種情況都試試看看結果是什麼樣的。
4樓:靚麗還清湛的標兵
學習過程中寫這樣語句可以加深理解,實際程式設計中寫這種自己都可能繞暈的含混語句,一定會被人罵,儘量用簡潔明瞭不含異議的語句表達,不然,你以為是這樣,而編譯器卻理解成那樣那就壞了,因為那些有歧義內容,在不同的編譯環境下可能會有不同的處理。
a++ b 這個表示式可編譯。
a+++b 這個表示式還可編譯。
a+++b 這個不能編譯了,相當於((a++)b 不合法了。
b 沒事,++b就不行了需要+(+b)才可以總結:類似於五筆中的折字,取大優先,先左後右。
5樓:陸展博
建議你查詢一下貪吃原則。
6樓:匿名使用者
a+++b相當雨(a++)b最後和為2 而最後a=2;b=1
c語言中++(自增運算子)只能用於變數不能用於變數嗎,為什麼?
7樓:yesyes科
只能用於變數不能用於常量,這是語法規定,常量作為只讀變數,直接對常量修改在編譯階段就會報錯,const修飾的變數也是隻讀變數,禁止修改。操作方法如下:
1、首先,定義一個變數i,並賦初值6。
2、接著,實現變數i的自加,注意++號在變數之後。
3、最後,輸出變數i自增後的值,如下圖所示。
4、執行程式,可以看到結果為7,說明成功實現自增。
5、將程式中的自增符號++,移動到變數i之前。
6、執行程式後,可以看到自增後的值還是7,說明單獨使用自增,i++和++i,兩種用法結果是一樣的。
8樓:網友
>>只能用於變數不能用於變數嗎。
是不是要問只能用於變數不能用於常量吧?
如果是這個問題的話,這是語法規定,常量作為只讀變數,直接對常量修改在編譯階段就會報錯const修飾的變數也是隻讀變數,禁止修改。
9樓:網友
什麼叫只能用於變數不能用於變數?
c語言自加++自減運算子資料型別是什麼?
10樓:娛樂小八卦啊
自加++自減--運算的資料型別可以是float和double。
在c語言中,並不是所有變數都可以使用自增自減操作符;可以使用自增自減操作符的資料型別有:int、float、double 、char、long。
自增(++將變數的值加1,分字首式(如++i) 和字尾式(如i++)字首式是先加1再使用;字尾式是先使用再加1。
自減(--將變數的值減1, 分字首式(如--i)和字尾式(如i--)字首式是先減1再使用;字尾式是先使用再減1。
c語言中自增運算子的作用是什麼
11樓:小夏聊生活
不可以是double和float 只可以是整型。
比如 int a; a = 1; a++;a--;
則a = 1
在c語言中還有一種更簡單的寫法,就是a++;或者++a;。這種寫法叫做自加或自增;意思很明確,就是自身加一。
相應的,也有a--和--a,叫做自減,表示自身減一。
和--分別稱為自增和自減運算子。
自增和自減的示例:
#include
執行結果:a=10, b=20
自增自減完成後,需要用新值替換舊值,並將新值儲存在當前變數中。自增自減只能針對變數,不能針對數字,例如10++是錯誤的。
在c語言中自增自減運算子有什麼作用?
12樓:重慶新華電腦學校
這是一類特殊的運算子,自增運算子++和自減運算子—對變數的操作結果是增加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也為;這是把num2++的值賦給b,因為白增運算子在變數的後面,所以先把num2賦值給b,b應該為8,然後num2自增加1變為9。
那麼如果出現這樣的情況我們怎麼處理呢?c=num1+++num2;
到底是。c=(num1++)num2;
還是。c=num1+(+num2);
這要根據編譯器來決定,不同的編譯器可能有不同的結果。所以我們在以後的程式設計當中,應該儘量避免出現上面複雜的情況。
13樓:匿名使用者
自增 x++ 意思為x=x+1
x自減 x-- 意思為 x=x-1
x
c語言 自加運算子
14樓:金魚
c語言中區分前自增與後自增,它們都有***,尤其是後自增。
前自增可能更好一點,它不產生臨時變數,效率更高一些。
y相當於:y=y+1;在變數的使用之前先自增。
y++相當於:y; 其它語句。y=y+1;也就是使用它時,它的值不變,在其使用之後的某一時刻但在再次使用它前其值加一。而且不同的編譯器不一定有一致的實現行為。
a=(y++)y++)y++)這是一條語句,通常的編譯器實現會將此語句一次性掃描完成。這種情況下,y++會保持其值不變,此語句完成後,將y的值遞增3次。
b=(+y)+(y)+(y)這也是一條語句,編譯器掃描完此語句後,先將y遞增3次,再作+運算,將運算結果賦予b,此時b應該為24。 但是不同的系統及編譯器不一定這樣實現,還有可能y依次遞增,其結果是21。
15樓:網友
1、自加有兩種形式,為i++和++表示先取i的值參與計算,等整個式子運算好了,再給i自增1 .。對於++i 則先把i 自增1得到i的新值 參與計算。
2、先計算str1[i]=str2[j](賦值),再將i j自加一運算。
16樓:幻世滅
++i的話就是先i=i+1,然後再使用自加後的值參加外層的運算。i++就是先參加外層的運算,再自加。
後面這個看不懂就不用管了)
不過其實i++和++i都是運算了之後才參加外層的運算。但是通過不同的操作符函式,i++參加外層運算的是原來i的一個副本。++i參加運算的是它自加後的本身。
17樓:網友
1. 之所以說它是賦值運算子,是因為++相當於做了 i = i + 1 的操作。
先計算str1[i]=str2[j],此時i,j的值還是以前的值,然後 i = i + 1 ,j = j + 1,其目的就是為了把str2的個元素內容依次賦值給str1個元素的內容。
如果是str1[++i]=str2[++j]先是 i = i + 1 ,j = j + 1,此時i,j的值都比以前大1,然後才是str1[i]=str2[j]
18樓:地攤秀子
a++和++a, 前一個先把a用了 然後再給a加一,後一個 先把a自己增加一 然後 再 做運算;
例如:x=5;
y=++x;
x先加到6,然後再將x的值應用到表示式y=x中,y值為6 x,y都為6
x=5;y=x++;
x為6,y為5.
同樣,對於你的陣列也適用!
19樓:網友
i++是後加。
1是先加在運算。
20樓:**的可樂
1. 運算子永遠按照優先順序從高到低進行計算,建議具體問題具體分析。
2. 樓上說法有誤,編譯器自左向右掃描完該等式,不是先計算str1[i]=str2[j],而是先計算等式右邊的表示式「str2[j++]的值,因j++是先取值,後自加,所以等式右邊表示式值為str2[j],此時j值為自加後的值。同理,整個等號表示式的值應為str1[i]=str[j]即str[j],當表示式運算結束時,i和j分別已是自加1以後的值。
另1,++x為先自加後取值,若運算前x=1,整個表示式的值和x均為2。
21樓:匿名使用者
1 自加、自減i++,i--都是運算子; i++ 相當於 i=i+1 但是前者是一個運算子,後者是一個表示式,所以兩者不能等同,只能說功能相當。既然 ++屬於運算子,那麼它就要按照運算子的優先等級來。
2首先要區分 i++ 與++i 前者先用了i 在i自加,後者相反;str1[i++]str2[j++]這個語句中 是先算++在計算str1[i]=str2[j],但是因為i++ 先用了i在i自加,所以看不出區別。如果表示式是。
str1[i++]str2[i++]i=2的話,那麼這個式子等價於 str1[1]=str2[2];
c語言的自加自減運算子
22樓:齊爾大君雅
printf("%d",+i);/9i=9printf("%d",-i);/8i=8printf("%d",i++)8i=9printf("%d",i--)9i=8printf("%d",-i++)8i=9printf("%d",-i--)9i=8前面是輸出值,後面是執行該語句後的i值。-i++應該這樣分,輸出的是-i,執行後i自動加的值始終是正的,最後2個輸出的是-i。
23樓:沐晨長孫振國
第五個:-i
是先把。i輸出,在i=i+1;則i
9;輸出為:
8第六個:i--是先把-i輸出,再i=i-1;則i=8;
輸出為-9;
輸出負數是因前面的。
符號。,而i是正數。
24樓:昌秀榮歷媼
a++和++a,前一個先把a用了。
然後再給a加一,後一個。
先把a自己增加一然後再。
做運算;例如:x=5;
y=++x;
x先加到6,然後再將x的值應用到表示式y=x中,y值為6x,y都為6
x=5;y=x++;
x為6,y為5.
同樣,對於你的陣列也適用!
c語言運算子,C語言 運算子 是怎麼運算的
9除以5商1餘4 不是說小數最後位是餘數 餘數就是在整數的除法中,只有能整除與不能整除兩種情況。當不能整除時,就產生餘數,所以餘數問題在小學數學中非常重要。餘數有如下一些重要性質 a,b,c均為自然數 1 餘數小於除數。2 被除數 除數 商 餘數 除數 被除數 餘數 商 商 被除數 餘數 除數。3 ...
有關C 自增運算子的問題,C 中自增運算子前後置的問題
1 首先,m的結果應該是19吧,我執行了程式,確實等於19 2 自增運算子屬於單目運算子,而 則為雙目運算子,單目運算子的優先順序要高於雙目運算子,所以,m i j 運算順序相當於m i j 3 i以i 1之後的i值為此表示式的值,i 則以i為表示式的值 4 m i j m i j 9 10 19 ...
c語言中自加自減運算子前後位置的區別
嗯,自加 自減 從結果上來看都是加1 減1 這點肯定沒錯。但是用在表示式中就會有差別了,拿你的例子來說i 5,如果執行下面的語句 int b i 結果b的值就是5,i的值變為6 如果是b i 那麼b的值就是6,i的值也是6 所以i 與 i使用在表示式中的時候的區別就是 前者是先使用i的當前值進行計算...