第四章 學習 表示式

2021-04-25 05:07:57 字數 3404 閱讀 9616

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.賦值運算需要乙個左值作為左側運算物件,得到結果仍然是...