C語言自增符號做函數(shù)參數(shù) C語言中自增

C語言中函數(shù)關(guān)于自增自減i的問題。求解決啊。。

第一段代碼:

創(chuàng)新互聯(lián)主營蘇尼特右網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app開發(fā),蘇尼特右h5微信平臺小程序開發(fā)搭建,蘇尼特右網(wǎng)站營銷推廣歡迎蘇尼特右等地區(qū)企業(yè)咨詢

++i是先增加i的值,然后使用。

p=f(i,++i); 是先執(zhí)行++i,后進行函數(shù)調(diào)用。因為執(zhí)行了++i以后,i的值已經(jīng)變成了3,

所以相當(dāng)于p=f(3,3);

你可以在函數(shù)f里面把a和b的值打印出來,你會發(fā)現(xiàn)a和b都是3.

第二段代碼:

i++是先使用i的值,然后把i的值加1.

所以相當(dāng)于先執(zhí)行p=f(2,2);

執(zhí)行之后,把i的值變成3.答案應(yīng)該是0.

我懷疑你們老師的課件寫錯了,建議你去問問他。

C語言自增運算符

(1)printf("%d", i++); 后綴,表達(dá)式里用 i, 出了表達(dá)式 自增1,故,分解為: printf("%d", i); i=i+1;

(2) printf("%d", ++i); 前綴,先自增,后用于表達(dá)式,故,分解為: i=i+1; printf("%d", i);

(3)(4) 同理,printf("%d", i--); 分解為:printf("%d", i); i=i-1;

printf("%d", --i); 分解為: i=i-1; printf("%d", i);

把分解后的語句組合起來,就可看出,輸出為 40 42 42 40

c語言 函數(shù)參數(shù)自增運算符問題

編譯器的不同 結(jié)果可能不同~~

p(i,++i)

有的傳遞的參數(shù)是2,3

有的傳遞的參數(shù)是3,3

運算順序從左至右和從右至左~~

如果傳遞的參數(shù)是2,3 那么返回值為-1 如果傳遞的參數(shù)是3,3 那么返回0

C語言 自增自減運算符應(yīng)用舉例 求解!

x=5

-----

++x 6 x=6

--x 5 x=5

x++ 5 x=6

x-- 6 x=5

-x++ -5 x=6

-x-- -6 x=5

-----

我們把它們當(dāng)成函數(shù)調(diào)用的形式來看,會比較好理解。i做為參數(shù)傳入,

在(++i,--i中,++,--做為前綴運算符),表達(dá)式的值為i+1或i-1.返回值為i+1或i-1.

在(i++,i--中,++,--做為后綴運算符),表達(dá)式的值為i,返回值為i+1或i-1.

看到有什么不同了嗎?

在++,--做為前綴運算符式,改變表達(dá)式的值,而作為后綴運算符時,表達(dá)式值不變。

共同點是,無論做前綴或后綴,返回值都自加或自減。

---------------------

....

int x=5; // x初始化值為5

printf("%d,",++x); // x=5,打印++x的值,++x的值為x+1 (5+1=6),返回值x+1,x=6

printf("%d,",--x"); // x=6,打印--x的值,--x的值為x-1 (6-1=5),返回值x-1,x=5

printf("%d,",x++); // x=5,打印x++的值, x++的值為x (5) ,返回值x+1,x=6

printf("%d,",x--); // x=6,打印x--的值, x--的值為x (6) ,返回值x-1,x=5

printf("%d,",-x++); // x=5,打印-x++的值, x++的值為x (5) -x=-5 ,返回值x+1,x=6

printf("%d,",-x--); // x=6,打印-x--的值, x--的值為x (6) -x=-6 ,返回值x-1,x=5

【表達(dá)式的值】 【返回的值】

....

ps:表達(dá)式的值和返回的值是兩個概念,-x++,-x--可看做-(x++),-(x--).++,--的優(yōu)先級高于+,-

C語言自加符號

C語言中區(qū)分前自增與后自增,它們都有副作用,尤其是后自增。

前自增可能更好一點,它不產(chǎn)生臨時變量,效率更高一些。

++y相當(dāng)于:y=y+1;在變量的使用之前先自增。

y++相當(dāng)于:y; 其它語句... y=y+1;也就是使用它時,它的值不變,在其使用之后的某一時刻但在再次使用它前其值加一。而且不同的編譯器不一定有一致的實現(xiàn)行為。

a=(y++)+(y++)+(y++) 這是一條語句,通常的編譯器實現(xiàn)會將此語句一次性掃描完成。這種情況下,y++會保持其值不變,此語句完成后,將y的值遞增3次。

網(wǎng)站題目:C語言自增符號做函數(shù)參數(shù) C語言中自增
轉(zhuǎn)載來源:http://m.kartarina.com/article12/dodsigc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號手機網(wǎng)站建設(shè)網(wǎng)頁設(shè)計公司微信小程序軟件開發(fā)響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
主站蜘蛛池模板: 无码成人AAAAA毛片| 亚洲AV无码1区2区久久| 日韩放荡少妇无码视频| 亚洲大尺度无码无码专线一区| 老子午夜精品无码| 亚洲午夜福利精品无码| 无码人妻品一区二区三区精99| 久久久国产精品无码一区二区三区 | 久久精品无码专区免费| 日韩人妻无码一区二区三区99 | 国产精品成人一区无码| 小SAO货水好多真紧H无码视频 | 亚洲av永久无码精品国产精品| 亚洲av无码av在线播放| 亚洲AV日韩AV永久无码免下载| 精品久久久久久无码中文字幕漫画 | 亚洲精品无码久久千人斩| 天堂Av无码Av一区二区三区| 18精品久久久无码午夜福利| 亚洲午夜福利AV一区二区无码| 无码人妻精一区二区三区| 97免费人妻无码视频| 日韩人妻无码一区二区三区99| 亚洲色无码专区在线观看| 久久精品无码一区二区日韩AV| 国产色无码精品视频国产| 蜜桃AV无码免费看永久| 久久久久亚洲Av无码专| 亚洲av无码乱码国产精品fc2| 人妻无码久久中文字幕专区 | 97人妻无码一区二区精品免费| 国产成人A人亚洲精品无码| 自拍中文精品无码| 午夜成人无码福利免费视频| 精品人妻无码一区二区三区蜜桃一 | 中文字幕日韩精品无码内射| 国产成人A亚洲精V品无码| 国产综合无码一区二区三区| 亚洲人成无码网站久久99热国产| 国产免费午夜a无码v视频| 亚洲国产精品无码久久九九 |