C語言學習筆記 和 操作符

2022-06-25 21:18:12 字數 1124 閱讀 2508

(1)#運算子用於在預處理期將巨集的引數轉換為字串

(2)#的轉換作用是在預處理期完成的,因此只在巨集定義中有效,即其他地方不能用#運算子

(3)用法:#define string(x) #x

printf("%s\n",string(hello world!));//注意,hello world!不加引號!

#include #define string(x) #x

intmain()

#運算子的妙用

#include //

注意巨集後面的為逗號表示式,返回的是第 1 個表示式的值

//該巨集最大的用處在於,可以輸出被呼叫的函式的名稱

#define call(f,p) (printf("call function %s\n",#f),f(p))

int square(int

n)int func(int

x)int

main()

(1)##運算子用於在預處理期粘連兩個識別符號 

(2)##的連線作用是在預處理期完成的,因此只在巨集定義中有效。

(3)編譯器不知道##的連線作用 

(4)用法:

#define connect(a,b) a##b 

int connect(a,1); //int a1;

a1 = 2;

#include #define name(n) name##n

intmain()

##運算子的工程應用

#include //

該巨集可以方便定義結構體,並給結構體命名。

//省去每次在定義結構體時,都要重複地寫上

//typedef struct ....之類的相同**

#define struct(type) \typedef

struct

_tag_##type type;\

struct

_tag_##type

//定義結構體,並命名為 student

struct(student)

;int

main()

C語言學習筆記 操作符總結

算術操作符 移位操作符 位操作符 賦值操作符 單目操作符 關係操作符 邏輯操作符 條件操作符 逗號表示式 下標引用,函式呼叫和結構成員 求兩個數的和 求兩個數的差 求兩個數的積 求兩個數的商 取模 兩個數相除的餘數 注意事項 左移操作符 右移操作符 邏輯移位和左移類似 int a 5 其二進位制序列...

C語言學習總結 操作符

算術操作符 移位操作符 位操作符 賦值操作符 單目操作符 關係操作符 邏輯操作符 條件操作符 逗號表示式 除了 操作符之外,其他的幾個操作符可以作用於整數和浮點數。對於 操作符如果兩個運算元都為整數,執行整數除法。而只要有浮點數執行的就是浮點數除法。對於 操作符如果兩個運算元都為整數,執行整數除法。...

C語言學習記錄17 和 操作符分析

和 操作符對應兩條彙編指令。1 前置 變數自增 減 1 取變數值 2 後置 取變數值 變數自增 減 1 vs和gcc不同 灰色地帶 結果分析 vs先加後自增。為什麼結果不確定?1 c語言中只規定了 和 對應指令的相對執行程式 2 和 對應的彙編指令不一定連續執行 3 在混合運算中,和 的彙編指令可能...