4.1
c # 將運算子分為三類 1. 一元運算子2.二元運算子 3. 三元運算子
4.2 使用初等表示式 是運算子的重要組成部分。
幾種不同的初等表示式:
1:字面值 在c#中 直接使用硬編碼的值。
比如 if (firstname = ="brain")
brain 就輸入直接使用硬編碼
也可以這樣 將其存入某個變數中,然後再進行比較。
string myfirstname = "brain";
if (firstname == myfirstname)
兩個布林型的字面值 true and false.
十進位制 及 十六進製制的字面值
int myvariable = 125;
int myvariable = 125u;u指 無符號型別的;智慧型調整大小。
int myvariable = 125l; 說明是 long型的;
採用十六進製制的時候,可以採用 a---f 及0---9,字母大小寫均可。
實字面值 即 使用浮點值
數字+指數+數字
實字面值沒指定的話認為是 double 否則:
float myvariable = 7.5f ;說明為浮點值
double myvariable = 7.5d;說明為double 型別的
decimal myvariable = 7.5m;說明 是decimal型別的.
使用字元字面值 指定 字元的值:
char myvariable = 'a';
使用字串的字面值嵌入字串:
string myvariable = "hello from c#";
使用空的字面值,是c#的一大特色。
object myobject = null;
2 識別符號:
c#中的編寫的識別符號是一些簡單的表示式的例項。
如下 int myvariable = 123;
識別符號有型別,在宣告識別符號的時候必須指明型別。
3帶括號的表示式:
帶括號的表示式的值為括號內的表示式計算後的結果。
4成員訪問:
呼叫物件的方法 表示式 如下: object.method 物件+點+方法
myclass myobject;
myobject = new myclass();
myobject.main();
5 呼叫表示式:
class myclass
上面的例子中, main()方法呼叫而來dowork()方法。
6元素訪問:
class myclass
int getarrayindex()
} 7 this 關鍵字: 當表示式中或函式中 含有類 或新定義的類時, 並出現this ,則this 代之 該類。
c#還定義了base 關鍵字 最初的base class 另外夠造出的 derivaed class
8庫訪問
9字尾方式的增一 或減一:就是以前了解過的i++類似。
10new 運算子 前面已經用於建立陣列,此外還可以 建立物件。
11 typeof 運算子 是c#的乙個關鍵字。用於返回標量型別的資訊。
12 checked and unchecked 運算子:
checked(int1+int2);
unchecked()表示式是預設的情況,表示為unchecked()的表示式不檢驗值的合法性,並且未檢驗的,無意義的值繼續執行程式。
4.3 理解一元表示式
一元加法表示式
一元減法表示式
邏輯求返回運算子 即 感嘆號! 將 true or false 求返的過程。
按位求返運算子 就是 將二進位制 1 變為0, 0變為1 過程。按位求返時將波浪號
~ 放在表示式的前面。
例如:int1 = 123;
int1 = ~int1;
間接運算子
取位址運算子
字首方式增1 或減1運算子 注意 使用字首方式的運算表示式時候, 在求出表示式的值之前改變量值的大小;使用字尾的方式的運算子時,在求出表示式的值之後改變值的大小。
型別轉換運算子
4.4 理解算數運算子
1 賦值運算子 可以一次給多個變數賦值
myinteger = 3;
myinteger =myotherinteger =3;
2 乘法運算子
3 除法運算子 除法運算子 得到的如果不為整數,則取商數。
4 加法運算子 字元相加的時候得到 鏈結的字串 如下
string combinedstring = "hello from" + "c#";
得到 combinedstring 的結果 hello from c#
5 減法運算子
6 取餘運算子
4.5 理解位移運算子
包括左位移運算子 及右 位移運算子
都是將數字轉化為 二進位制的數字,然後執行 移動。
關係型的運算子 允許 比較兩個表示式的值 ,並得到乙個布林型的結果。
== 表示恒等運算子,來比較兩個 值是否相等。
!= 不等運算子
< 小於運算子
> 大於運算子
<= 小於等於運算子
>= 大於等於運算子
上面這些應該都屬於 比較運算子
4.6 理解整數邏輯運算子
and & 運算子
myinteger = 6 & 3;的結果為2
也就是 將 6 和3 都化為二進位制後,相同且都為1 才不變,其餘為0了
exclusive or ^運算子
跟上面的意思差不多,就是 只有兩個相同位置上都一樣的情況下結果才為1.
or | 運算子
只要兩個相同位置上有至少乙個為1 時候結果才是1.
4.7 理解條件邏輯運算子
條件與 conditonal and &&
myboolean = true && false; 只有兩者都是true 是才是true
conditional or
myboolean = true || false;
只要乙個為true 結構都為true .
條件邏輯conditional logic 唯一的三元表示式
myinteger = (myvariable == 123)? 3:5;
比較選擇。
4.8 理解運算的次序
c# 初等表示式
一元運算子
乘除運算
加減運算子
移位運算子
關係運算子
相等不等運算子
邏輯與運算子
邏輯異或運算子
邏輯或運算子
條件與運算子
條件或運算子
條件三元運算子
賦值運算子
第四章 表示式
左值,用的是物件的身份 記憶體中的位置 右值,用的是物件的值 解引用生成 左值,取位址生成乙個 右值 bool b true bool c b c為true,因為 bool值在計算的時候被轉換成整型號int,所以b被轉換成 1,不為0,所以賦值給c的時候,為true int b while b ge...
第四章 表示式
這個概念暫時很模糊,打算學完這一章再總結。目前的理解是,左值有名字,可以通過名字訪問記憶體,右值沒有名字,一般是運算的中間結果或者字面值常量等。const修飾的變數是常量左值 如果decltype 函式的括號中表示式結果是左值,則得到乙個引用型別。例如在下面這段 中,b是int型別,c是int 型別...
c primer第四章 表示式
左值 右值 當乙個物件被當做右值的時候使用的是物件的值 內容 當物件被用作左值的時候用的是物件的身份 記憶體 原則 在使用右值的地方可以用左值代替,但是不能把右值當成左值 也就是位置 使用。當乙個左值被用工作右值時,實際上使用的是她的內容 值 1.賦值運算需要乙個左值作為左側運算物件,得到結果仍然是...