真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

fudge函數(shù)C語言 c語言中f函數(shù)用法

c語言求救

你用的都是宏定義,宏定義編譯的時候替換的。具體到你這個問題,PRINT1(FUDGE(5)*x);

創(chuàng)新互聯(lián)公司主要從事做網(wǎng)站、成都網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)肇州,十載網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220

是這樣替換的,F(xiàn)UDGE(5)*x這個整體作為參數(shù)宏定義里的參數(shù)a,這里面還有一個參數(shù)宏FUDGE(5),它是這么替換的,2.84+5。而在PRINT1這個宏里,替換后的參數(shù)為2.84+5*2。又因為你是int類型,所以輸出為12。

一些建議:

宏里面只是簡單替換,不會幫你改變運算順序,如果需要請用小括號改變相關(guān)運算順序。

PRINT1(FUDGE(5)*x);修改為PRINT1( ( FUDGE(5) ) *x);看看。

宏參數(shù)記得加上小括號。#define FUDGE(y) 2.84+y中的y寫成 2.84+(y)

希望對你有所幫助。

關(guān)于c語言的

FUDGE(5)*y展開時變成

2.84+5*y

=2.84+5*2

=12.84

所以結(jié)果是12。

應(yīng)該這樣這樣定義:

#define FUDGE(y) (2.84+y)

則FUDGE(5)*y

=(2.84+5)*2

=15.68

結(jié)果是15.

C語言用define還有i后增

38

將宏定義帶入即可。

PRINT1(FUDGE(5)*x);

=

PR(FUDGE(5)*x);putchar('\n');

=

printf("%d",(int)(FUDGE(5)*x));putchar('\n');

=

printf("%d",(int)(2.84+5*x));putchar('\n');

x值為2, 2.84+5*x=12.84 轉(zhuǎn)為int為12

于是這里輸出12

選B

39

這里有兩個i,中間{}里面用的i,和外面用的i不同。

執(zhí)行第一個printf 打印外面的i值,1, 打印后,i自加為2

執(zhí)行中間的{} i+=j*2 i=i+j*2=0+6=6

輸出i和j,也就是6,3

然后輸出下一個i和j,注意 這里是i是{}外面的i, 也就是自加后的2,

這里輸出2,3

于是 輸出

1,6,3,2,3

選B

注意,這里第一個和第二個printf少打了一個逗號按照現(xiàn)在程序 實際上輸出的是

16,32,3

c語言寫程序結(jié)果的小問題

#include stdio.h

#define FUDGE(y) 2.84+y

#define PR(a) printf("%d",(int)(a))

#define PRINT1(a) PR(a);putchar('\n')

main()

{

int x=2;

PRINT1(FUDGE(5)*x);

}

對于以上程序 結(jié)果應(yīng)該是12

要說明的是,F(xiàn)UDGE(y)等不是普通的函數(shù),而是預(yù)編譯宏,執(zhí)行時不能按一般的算法思維

預(yù)編譯是在程序編譯之前就進行替換的,即

FUDGE(5)*x

在編譯之前被替換成了

2.84+5*x,而不是(2.84+5)*x

這樣在進行真正的編譯的時候2.84+5*x=2.84+5*2=12.84

然后經(jīng)過int強制轉(zhuǎn)化變成12輸出 o(∩_∩)o...


新聞名稱:fudge函數(shù)C語言 c語言中f函數(shù)用法
網(wǎng)址分享:http://weahome.cn/article/doeddph.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部