使用者工具

網站工具


visual_c_plusplus

差異處

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

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
visual_c_plusplus [2024/04/15 08:15]
don
visual_c_plusplus [2025/11/26 16:53] (目前版本)
don [指標運算子 (*, &)]
行 1: 行 1:
 ====== Visual C++ 研究 ====== ====== Visual C++ 研究 ======
  
-驅動程式中使用 +驅動程式中使用\\ 
-KdPrint 而盡量不要使用 DbgPrint +KdPrint 而盡量不要使用 DbgPrint\\ 
-KdPrint 會根據編譯版本看是否呼叫 DbgPrint或者不輸出 +KdPrint 會根據編譯版本看是否呼叫 DbgPrint或者不輸出\\ 
-Checked --> KdPrint --> DbgPrint +Checked --> KdPrint --> DbgPrint\\ 
-Free --> KdPrint -->  XXX+Free --> KdPrint -->  XXX\\
  
-DbgView 免費提供 可在微軟的網站中找到 +DbgView 免費提供 可在微軟的網站中找到\\ 
-DbgView 可以同時監聽內核和 Win32 上層應用程式發送的除錯訊息。+DbgView 可以同時監聽內核和 Win32 上層應用程式發送的除錯訊息。\\
  
 ^符号 ^格式说明符 ^类型 ^ ^符号 ^格式说明符 ^类型 ^
 |%c, %lc|ANSI字符 |char| |%c, %lc|ANSI字符 |char|
-%C, %wc 宽字符 wchar_t +|%C, %wc|宽字符 |wchar_t| 
-%d, %i 十进制有符号整数 int +|%d, %i |十进制有符号整数 |int| 
-%D 十进制__int64 __int64 +|%D |十进制__int64 |__int64| 
-%L 十六进制的LARGE_INTEGER LARGE_INTEGER +|%L |十六进制的LARGE_INTEGER |LARGE_INTEGER| 
-%s, %ls NULL终止的ANSI字符串 char* +|%s, %ls|NULL终止的ANSI字符串 |char*| 
-%S, %ws NULL终止的宽字符串 wchar_t* +|%S, %ws|NULL终止的宽字符串 |wchar_t*| 
-%Z ANSI_STRING字符串 ANSI_STRING +|%Z |ANSI_STRING字符串 |ANSI_STRING| 
-%wZ UNICODE_STRING字符串 UNICODE_STRING +|%wZ |UNICODE_STRING字符串 |UNICODE_STRING| 
-%u 十进制的ULONG ULONG +|%u |十进制的ULONG |ULONG| 
-%x 小写字符十六进制的ULONG ULONG +|%x |小写字符十六进制的ULONG |ULONG| 
-%X 大写字符十六进制的ULONG ULONG +|%X |大写字符十六进制的ULONG |ULONG| 
-%p 指针Pointer 32/64位 +|%p |指针Pointer 32/64位 | | 
 + 
 +運算子的種類 
 +^算數運算子 ^說明 ^範例(假設 a = 10, b = 3)^ 
 +| + | 加法運算子 | a + b 結果為 13 | 
 +| - | 減法運算子 | a - b 結果為 7 | 
 +| * | 乘法運算子 | a * b 結果為 30 | 
 +| / | 除法運算子 | a / b 結果為 3 (整數除法) | 
 +| % | 取餘數 | a % b 結果為 1 (餘數) | 
 +| ++ | 遞增 | 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> 
  
  
visual_c_plusplus.1713140153.txt.gz · 上一次變更: 2024/04/15 08:15 由 don