C 學習筆記(二)

2021-08-16 16:42:34 字數 2887 閱讀 5946

1、型別轉換

變數之間總共有三種轉換方式:顯式轉換/隱式轉換、convert轉換和parse轉換。

型別轉換出現的地方:當表示式兩邊型別不一致時;

隱式轉換(自動轉換):當滿足兩個條件時會發生隱式轉換(1、兩種型別相容;2、目標型別的範圍大於源型別。例如int—>double)。(因為是自動轉換,因此沒有特別的語法要求)

顯式轉換(強制轉換):滿足(1、兩種型別相容;2、目標型別的範圍小於源型別。例如將double—>int)。(需要用(int)這樣的語法來強制轉換)。

convert轉換:當變數型別不相容的時候,可以使用convert轉換進行轉換,例如將string轉換為int或double;

string s="12.345";

double a=convert.todouble(s);

注意:在用convert進行轉換的時候,轉換的內容必須是能夠轉換得過去的,例如不能將"123.54"轉換為int,因為123.54是小數,不能轉換為int型別。

string s="12334";

int n=convert.toint32(s); //錯誤

string s="123";

int n=convert.toint32(s); // 正確

parse轉換:每種基本資料型別自身有的方法,convert轉換的本質就是呼叫了parse函式,所以parse轉換的效率更高點;

string s = "123";

int n = int.parse(s);

除了parse外還有個tryparse,tryparse相對於parse來說最大的區別就是tryparse即使轉換不了它也不會拋異常。

注意:所有型別都可以轉換為string型別。

int n=10;

string s=n.tostring();

//double d=1.234;

string s=d.tostring();

2、c#中控制数字輸出精度方式

在佔位符中利用冒號說明數字精度,例如

console.writeline("",a);
冒號後面的0.00來控制数字輸出精度,小數點後有幾個零,則輸出的數字就有幾個小數字;

3、異常捕獲

異常:語法上沒有錯誤,但是執行過程中會產生錯誤,導致程式不能正常執行。

用try----catch語句來進行異常捕獲。

try

catch

4、c#中產生隨機數

1、建立能夠產生隨機數的物件;

random r= new  random();

2、讓隨機數物件呼叫相應的方法產生隨機數;

int   n = r.next(1,10);    //1—10產生隨機數範圍

5、列舉

列舉可以在一定程度上規範我們的開發,尤其是團隊專案。

列舉宣告:

[訪問許可權]  enum  列舉名

值1,值2,

........

}使用:

列舉名  列舉變數=列舉名.值1;

注意:列舉定義的是乙個簡單的變數型別,其和int、double、string等型別一樣,當定義了乙個列舉之後,那麼這個列舉名就是乙個簡單的資料型別了,可以利用其去定義該列舉型別的變數,如上面列舉的使用方法,其含義和int等資料型別一樣,但是其值的方式不一樣。

6、結構

語法

[許可權修飾詞] struct 結構名

//--------------------------

public struct person

7、c#陣列

語法

//1#

陣列型別 陣列名=new 陣列型別[陣列長度];

//2#

陣列型別 陣列名=;

//3#

陣列型別 陣列名=new 陣列型別[陣列長度];

推薦前兩種宣告陣列的方式,不推薦第三種,在使用第三種的時候,後面元素的個數一定要和陣列長度一樣,不能多也不能少。

8、c#方法(函式)

[訪問許可權] [static] 返回值型別 方法名([引數列表])

呼叫:類名.方法名([實參]);

方法中有三種高階引數:out、ref和params。

public static bool islogin(string name,string pwd,out string msg)}呼叫

bool b;

string m;

b=islogin("name","1234",out m);

上述方法中我想返回的有bool和string,來告訴我登入的資訊。注意在方法引數列表和呼叫的時候均要使用關鍵字out,並且在呼叫的時候一定先宣告乙個變數來接受out引數。

public static void add(ref int n)

呼叫int n=1000;

add(ref n); //呼叫之後n的值是1500;

如果沒有ref則呼叫add不會改變n的值

將實參列表中跟可變引數陣列型別一致的元素都當做陣列的元素去處理。

public static int sum(params int n)

{ int s=0;

for(int i=0;i上述會將1,2,3,4,5都當做陣列n的元素來處理,可以在上面任意輸入很多的整型資料

注意:params引數只能是方法引數列表中最後乙個引數,並且乙個方法中只能有乙個params引數,在呼叫的時候輸入的實參必須和陣列型別一致。

C 學習筆記(二)

在學習最新的c 標準過程中會碰到很多新問題,這些問題有時候很難理解為什麼會發生。更奇怪的是,似乎跟開發工具有關。如下面這個在vs2005下的例子 word istatus ifstream ifs if i it szprlfile,0 0 std locale global std locale ...

C 學習筆記二

chapter22 滾動字幕程式 1.ondraw函式中寫畫得內容.使用invalidate 或者 invalidaterect 重新整理 觸發ondraw 得呼叫.2.windows不允許直接 訪問顯示硬體 我們必須通過和視窗 關聯得 裝置環境 跟顯示硬體 通訊 裝置環境由c 得cdc類 物件表示...

C 學習筆記(二)

本期話題 字串文字常量,指標,引用 1 關於字串文字常量 sizeof bohr 5 字串文字常量的型別是 適當個數的const字元的陣列 所以 bohr 的型別就是const char 5 下面的賦值是可以的 char p bohr 因為在c c 原來的定義裡,字串文字常量的型別就是char 字串...