使用者工具

網站工具


visual_c_plusplus

差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
visual_c_plusplus [2025/11/26 14:48]
don
visual_c_plusplus [2025/11/26 16:53] (目前版本)
don [指標運算子 (*, &)]
行 26: 行 26:
  
 運算子的種類 運算子的種類
-^運算子 ^明 ^範例 ^ +^算數運算子 ^明 ^範例(假設 a = 10, b = 3)
-| + | 加法運算子 | a + b | +| + | 加法運算子 | a + b 結果為 13 
-| - | 減法運算子 | a - b | +| - | 減法運算子 | a - b 結果為 7 
-| * | 乘法運算子 | a * b | +| * | 乘法運算子 | a * b 結果為 30 
-| / | 除法運算子 | a / b | +| / | 除法運算子 | a / b 結果為 3 (整數除法) 
-位元 & 運算子 | a b | +取餘數 | a 結果為 1 (餘數) 
- 加法運算子 | a + |+++ 遞增 | a++ 使 a 變為 11 | 
 +| -- | 遞減 | a-- 使 a 變為 9 |
  
 +^邏輯運算子 ^說明 ^範例 (假設 a = 1, b = 0) ^
 +| && | 邏輯 AND | a && b 結果為 0 (僅當兩者皆非零時才為真) |
 +| <nowiki>||</nowiki> | 邏輯 OR | a <nowiki>||</nowiki> b |
 +| ! | 邏輯 NOT | !a |
 +
 +
 +^位元運算子 ^說明 ^範例 ^
 +| ~ | 位元補數運算子 |  |
 +| & | 位元 AND 運算子 | a & 0x0F  將 bit 4~7 設為 0 |
 +| <nowiki>|</nowiki> | 位元 OR 運算子 | a <nowiki>|</nowiki> 0x0F 將 bit 0~3 設為 1 |
 +| <nowiki>^</nowiki> | 位元 XOR 運算子 |  |
 +| << | 位元左移運算子 | a << 8, a 左移 8 bit  |
 +| >> | 位元右移運算子 | a >> 8, a 右移 8 bit |
 +
 +^關係運算子 ^說明 ^範例 (假設 a = 5, b = 3) ^
 +| == | 等於運算子 | a == b 結果為 0 (False)|
 +| != | 不等於運算子 | a != b 結果為 1 (True) |
 +| > | 大於運算子 | a > b 結果為 1 (True) |
 +| < | 小於運算子 | a < b 結果為 0 (False) |
 +| >= | 大於等於運算子 | a >= b 結果為 1 (True) |
 +| <= | 小於等於運算子 | a <= b 結果為 0 (False) |
 +
 +^指派運算子 ^說明 ^範例  ^
 +| = | 簡單指派 | a = 5;|
 +| += | 加後指派 | a += 2; 等同於 a = a + 2;|
 +| -= | 減後指派 | a -= 2; 等同於 a = a - 2;|
 +| *= | 乘後指派 | a *= 2; 等同於 a = a * 2;|
 +| /= | 除後指派 | a /= 2; 等同於 a = a / 2;|
 +| %= | 模後指派 | a %= 2; 等同於 a = a % 2;|
 +
 +其他重要運算子
 +
 +==== 條件運算子 ==== 
 +(? :): 唯一的三元運算子 (ternary operator),用於簡潔的條件判斷式。\\
 +<code> 範例: (a > b) ? a : b; (如果 a > b 為真,則返回 a,否則返回 b)</code>
 +
 +==== sizeof 運算子 ====
 +返回運算元的大小 (以位元組為單位)。\\
 +<code> 範例: sizeof(int) </code>
 +
 +==== 指標運算子 (*, &) ====
 +用於處理記憶體位址和指標。\\
 +<code>
 +&: 位址運算子 (Address-of operator),返回變數的記憶體位址。
 +*: 解參考運算子 (Dereference operator),訪問指標所指向的值。
 +</code>
  
  
-根据DDK上说明,Unicode格式(%C, %S, %lc, %ls, %wc, %ws, and %wZ)只能在 IRQL = PASSIVE_LEVEL時才能使用。\\ 
-需要注意 中文的 WCHAR 和 UNICODE_STRING可能会被截断打印不出来 \\ 
-需要转化为 CHAR 和 ANSI_STRING 来打印 \\ 
-ANSI_STRING ansiString;  //省去对ansiString初始化  \\ 
-KdPrint(("%Z\n", &ansiString));    //注意是%Z  \\ 
-   
-UNICODE_STRING;  //省去对uniString初始化  \\ 
-KdPrint(("%wZ\n", &uniString));    //注意是%wZ  \\ 
  
visual_c_plusplus.1764139686.txt.gz · 上一次變更: 2025/11/26 14:48 由 don