1樓:
巨集定義就是字串代替,先把整個東西代替進去 。
'a' < ( s[++i]) && ( s[++i]) < 'z' ? ( s[++i]) -'a' + 'a' : (s[++i] )
?: 這是三目運算子,從左到右。
先是'a' < s[++i] 這裡是 'a' < s[1] = 'b' 成立
接下來是 s[++i] < 'z' 這裡是 s[2] = 'c' < 'z' 也成立 。
所以是, ( s[++i]) -'a' + 'a' 這裡其實就是小寫轉大寫
這裡是, s[3] = 'd' - 'a' + 'a' 。
結果 就是d 了。。。
這就是巨集定義最容易出錯的點。
2樓:
表示式裡面str[++i]被運算了3次,最後i=3;所以是d
3樓:福州吧壹母
巨集定義,首先,它是定義一個變數並已經初始化了,就像你說的,將a定以後初始化為1000,作用域是整個檔案(如果沒有#ifndef和#endif);但是不包括字串常量和字元常量的裡面的a
是否可以解決您的問題?
c語言巨集定義什麼結果輸出
4樓:風若遠去何人留
3 x=3*(a+b(7))
=3*(a+((a+1)*7))
=3*(3+((3+1)*7))
=3*(3+28)
=3*31
=93選b
4 null定義為(void*)0 也就是值為0的指標於是 以%d輸出 那麼還是0選b
c語言vs2013下,巨集定義的值如何輸出啊。
5樓:閆鵬程程
巨集定義完成之後 針對你這個問題 以後所有的5 都可以用inum代替 所以數字5怎麼用,那inum就可以怎麼用 巨集定義只是替換作用。希望能幫到你
6樓:匿名使用者
除了應該寫英文的括號與引號外,這個語句不會出任何問題啊
c語言中 如何對「輸出格式」做巨集定義
7樓:奮鬥的懷超
#define format "~~~~"(~~~代表你要輸出的格式)
輸出的時候用printf(format,~,~,...)此處~~代表你要輸出的變數
8樓:
#define print(width,type,value) printf("%"#width#type,(value))
#define bufprint(buf,width,type,value) sprintf(buf,"%"#width#type,(value))
應用:print(-10.1,f,10.25);
print(3,d,10);
print(08,x,100);
print(#08,x,100);
print(,x,100);
print(16,s,"hello, world!");
9樓:淺夏微涼耶
void main()
關於c語言巨集定義的問題
10樓:匿名使用者
錯誤原因:定義巨集的時候 #define print(a); 多了一個分號 一直到下面**的時候巨集自動幫你替換成 ;printf("the end"); 那麼根據for迴圈的規律,不加{}的情況下,它只執行 printf("the end"); 所以不一樣,第2個之所以只輸出一個其實那是在for迴圈結束後才執行的 注:巨集定義是不需要 ; 來結尾的要加也是在後面的**上加,而不是在巨集名後面加..。
11樓:匿名使用者
c語言的字元是用ascii碼錶示的。每一個字元對應一個整數。同樣的,每一個整數也對應一個字元。
a~z對應66~90。a~z對應97~122的數。ch大於a小於z時讓它 a-a,正好可以把它的ascii碼變為a~z區間內的整數。
12樓:匿名使用者
"#define print(a); "它的最後好像是不能加分號吧,你去掉分號試試看
13樓:匿名使用者
#define print(a);把;去掉
c語言巨集定義計算問題,C語言巨集定義計算問題
i f 4 4 f 2 2 4 4 4 4 2 2 2 2 28如果 define f x x x i f 4 4 f 2 2 4 4 4 4 2 2 2 2 64 define f x x x i f 4 4 f 2 2 這樣i f 4 4 f 2 2 4 4 4 4 2 2 2 2 24 8 3...
C語言巨集定義意思
巨集定義是c語言提供的三種預處理功能的其中一種,這三種預處理包括 巨集定義 檔案包含 條件編譯。巨集定義又稱為巨集代換 巨集替換,簡稱 巨集 格式 define 識別符號 字串 其中的識別符號就是所謂的符號常量,也稱為 巨集名 預處理 預編譯 工作也叫做巨集 將巨集名替換為字串。掌握 巨集 概念的關...
關於C語言中陣列的定義,C語言中如何定義陣列
一樣的,陣列在做函式引數時,傳遞給函式的都是陣列的首指標,哪怕你的函式這樣寫 void swp int p 在呼叫的時候swp array 也是可以的。只要傳遞給函式一個陣列的首指標就行了,而你的array正好是陣列的首指標。char s 10 123 是表示前三個元素分別是1,2,3但s 2 0 ...