首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 教學課程(二):運算式、型別與變數完整指南

     編輯:關於C語言

學習目標

  • 理解變數本質:資料儲存位置
  • 掌握 C# 簡單型別分類與範圍
  • 認識運算式、運算子優先序與結合性
  • 了解字串與陣列型別

變數與強型別系統

C# 是強型別語言:所有變數操作皆依型別進行,編譯器嚴格檢查型別相容性,確保資料合法性與一致性。變數必須先宣告型別再使用。

簡單型別完整對照表

布林型別

bool hasContent = true;
bool noContent = false;
Console.WriteLine($"It is {hasContent} that C# provides content.");
// 輸出: It is True that C# provides content.

整數型別(有號/無號)

型別位元範圍
sbyte8-128 ~ 127
byte80 ~ 255
short16-32,768 ~ 32,767
ushort160 ~ 65,535
int32-2,147,483,648 ~ 2,147,483,647
uint320 ~ 4,294,967,295
long64-9.22×10¹⁸ ~ 9.22×10¹⁸
ulong640 ~ 1.84×10¹⁹
char160 ~ 65,535 (Unicode 字元)

char 代表單一 Unicode 字元,不可直接參與數學運算。

浮點與十進位型別

型別位元精度範圍
float327 位數字1.5×10⁻⁴⁵ ~ 3.4×10³⁸
double6415-16 位數字5.0×10⁻³²⁴ ~ 1.7×10³⁰⁸
decimal12828-29 位十進位1.0×10⁻²⁸ ~ 7.9×10²⁸

金融計算請使用 decimal,避免二進位浮點誤差。

運算子優先序與結合性完整表

分類運算子結合性
主要() x.y f(x) a[x] x++ x-- new typeof sizeof checked unchecked左
單目+ - ! ~ ++x --x (T)x左
乘法* / %左
加法+ -左
位移<< >>左
關係< > <= >= is左
相等== !=右
邏輯 AND&左
邏輯 XOR^左
邏輯 OR|左
條件 AND&&左
條件 OR||左
條件?:右
指派= *= /= %= += -= <<= >>= &= ^= |=右

左結合:從左至右運算(如 a - b - c 等同 (a - b) - c)
右結合:從右至左運算(指派 a = b = c 等同 a = (b = c))

單目運算子實戰範例

int unary = 0;
int preInc = ++unary;   // 先加後取值 → 1
int preDec = --unary;   // 先減後取值 → 0
int postDec = unary--;  // 先取值後減 → 0 (unary 變 -1)
int postInc = unary++;  // 先取值後加 → -1 (unary 變 0)

sbyte bitNot = 0;
bitNot = (sbyte)(~bitNot);  // 位元取反:0 → -1 (0xFF)
bool logNot = false;
logNot = !logNot;           // 邏輯非:false → true

關鍵差異:前置 ++x 先運算後取值,後置 x++ 先取值後運算。

二元運算子與型別轉換

int x = 7, y = 5;
int result = x / y;           // 整數除法 → 1
float floatResult = (float)x / (float)y;  // 強制轉型 → 1.4
result = x % y;               // 餘數 → 2
result += x;                  // 等同 result = result + x

整數運算結果為 int,若指派給較小型別(byte、short)需強制轉型,注意資料遺失風險。

字串型別

string 為參考型別,內容不可變。字面常數以雙引號括住:"Hello World"。支援逸出字元(\n、\t、\\)與逐字字串(@"C:\Path")。

陣列型別完整指南

一維陣列

// 宣告並初始化
int[] myInts = { 5, 10, 15 };
string[] names = new string[3] { "Joe", "Matt", "Robert" };

// 存取
Console.WriteLine(myInts[0]);  // 5
names[1] = "Mary";

多維陣列(矩形陣列)

double[,] matrix = new double[2, 2];
matrix[0, 0] = 3.14;
matrix[1, 1] = 2.11;

交錯陣列(陣列的陣列)

bool[][] jagged = new bool[2][];
jagged[0] = new bool[2];
jagged[1] = new bool[1];  // 每維長度可不同

陣列屬性與方法

string[] arr = { "Linda", "Lily", "Adidas" };
int len = arr.Length;           // 總長度 3
int dimLen = arr.GetLength(0);  // 第 0 維長度 3
Array.Sort(arr);                // 排序
Array.Reverse(arr);             // 反轉

重要規則總結

  • 陣列索引從 0 開始
  • 陣列大小必須為整數常數或變數,初始化需用 new
  • int len = 3; string[] arr = new string[len] { "a", "b", "c" }; 合法(len 為變數)
  • const int len = 3; 亦可,但非常數變數不可用於固定大小語法(new string[len] 中 len 必須為常數)
  • 初始化清單元素數量必須符合宣告大小
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved