一周學會C (值的型別二)

2021-04-17 00:53:35 字數 2103 閱讀 5182

一周學會

c#(值的型別二)

4.連線

·規則1

w除了賦值操作符外的其他二元操作符都是左連線的。

x+y+z

應理解為

x+y+z

·規則2

w賦值操作符和?:操作符是右連線的。

x=y=z

應理解為x=(y=z)

x+=y+=z

應理解為x+=(y+=z)

a?b:c?d:e

應理解為a?b:(c?d:e)

5.計算時的順序

·運算元是嚴格地從左到右被計算的。

int m = 2;

int answer = ++m * ++m + ++m * ++m;

計算的順序:

3 * ++m + ++m * ++m

3 * 4 + ++m * ++m

12 + ++m * ++m

12 + 5 * ++m

12 + 5 * 6

12 + 30

42

6.整數溢位

·溢位錯誤

wun/checked (表示式)

wun/checked{語句

intm =...

method(checked(m * 2));

m =checked(m * 2);

checked

以上的每一句語句都進行溢位錯誤檢查

method(m * 2);

m *= 2;

以上的每一句語句在用csc /checked+ *.cs編譯時,進行溢位錯誤檢查

以上的每一句語句在用csc /checked- *.cs編譯時,不進行溢位錯誤檢查

method(unchecked(m * 2));

m =unchecked(m * 2);

unchecked

以上的每一句語句都不進行溢位錯誤檢查

checked(表示式)檢查乙個表示式的結果是否溢位。它可以用於任何乙個表示式,但只只能對整數操作符起作用,因為只有這些操作符才產生溢位。這些操作符是:++, --, -(負號),+ -(減號),* ,/ ,%以及整型之間的顯式型別轉換符。checked(表示式)的結果也是乙個表示式,它可以被用來作為另乙個表示式的一部分:

int outcome = checked( ... );

checked檢查一系列的語句結果是否溢位。它不是乙個表示式,沒有結果。例如,下面有語句會產生錯誤:

int nooutcome = checked ;

(注意:checked(表示式)的括號是園括號,而checked的括號是花括號)。

unchecked是不檢查是否溢位。

一周學會C (類二)

一周學會 c 類二 5.例項字段 例項字段.w在所有的建構函式中被初始化為預設值 0 false null w可以在一建構函式中顯式初始化 w可以在它們宣告時初始化 sealed class pair private int x private int y 42 回憶一下 在結構的自定義建構函式必須...

一周學會C (屬性一)

一周學會 c 屬性一 1.問題 struct time public void sethour int value private int hour,minute,second static void main 封裝把一些不重要的細節隱藏起來,這樣你可以集中精力處理那些重要的內容。但封裝很難被掌握,...

一周學會C (列舉一)

一周學會 c 列舉一 1.型別 值型別 w變數直接包含它們自己的資料 w區域性變數總是放在棧 stack 中 引用型別 w變數間接指向它們的資料 w區域性變數指向堆 heap 中的物件 列舉 enum 值型別 結構 struct 值型別 類 class 引用型別 介面 inte ce 引用型別 陣列...