C 基礎筆記 Day4

2021-07-03 19:16:20 字數 2424 閱讀 3543

定義列舉要先寫乙個 enum 關鍵字,然後在{}內新增一組符號標識,包括了該列舉型別可以擁有的合法值。

enum

season //放在公共區域

列舉內部的每個元素都關聯/對應著乙個整數值。預設第乙個元素對應整數 0,以後每個元素對應的整數都遞增 1。獲取列舉變數的整數值之前,必須先將它轉換為基本型別。

enum season 

...season colorful = season.fall;

console.writeline((int)colorful); // 輸出2

如果有特殊需求,可以將特定整數常量和列舉型別的字面值手動關聯。

enum

season

不為列舉的字面值顯式指定常量整數值,編譯器會自動為它指定比前乙個列舉字面值大 1的值。上式中, spring, summer,fall 和 winter 的基礎值將變成 1, 2, 4 和 5。

宣告結構要以 struct 關鍵字開頭,後跟型別名稱,最後是大括號中的結構主體。

和類一樣,大多數時候都不要在結構中宣告公共字段。

如果乙個概念的重點在於值而不是功能、或者資料值簡單短小,就用結構來實現。

呼叫構造器:

在編譯器為結構生成的預設構造器中,總是將字段設為 0, false 或 null。

由於結構是值型別,所以不呼叫構造器也能建立結構變數,如下所示:

使用多維陣列時,一般都要準備好捕捉並處理 outofmemoryexception 異常。

無論元素是什麼型別,陣列始終都是引用型別。這意味著陣列變數引用堆上的記憶體塊。

建立陣列例項時,會使用預設值(0, null 或者 false,分別取決於是

數值型別,是引用型別,還是 boolean 型別)對其元素進行初始化。

編譯器推斷 names 是 string 型別的陣列變數。

注意語法有兩個特別之處。

首先,型別後的方括號沒了,names 變數被直接宣告為 var,而不是 var。

其次,必須在初始值列表之前新增 new。

var names = new;
避免混合使用多種型別,不要單純寄希望於編譯器的自動轉換。

由於陣列是引用型別,陣列變數實質上是對陣列例項的引用。複製了陣列變數之後,獲得的是對同乙個陣列例項的兩個引用。

int pins = ;

int copy = pins;

要真正複製陣列例項,獲得堆上實際資料的拷貝,必須完成兩個步驟。

首先建立型別和大小與原始陣列相同的乙個新陣列例項;

然後將資料元素從原始陣列逐個按序複製到新陣列,如下所示:

int pins = ;

int copy = new

int[pins.length];

pins.copyto(copy,0);

copy, copy.length);

//int copy = (int)pins.clone();

如果應用程式只使用多維陣列每一列的部分資料,為未使用的元素分配記憶體就是巨大的浪費。這時可以考慮使用交錯陣列/不規則陣列,其每一列的長度都可以不同。

int items = new

int[4];

int columnforrow0 = new

int[3];

int columnforrow1 = new

int[10];

int columnforrow2 = new

int[40];

int columnforrow3 = new

int[25];

items[0] = columnforrow0;

items[1] = columnforrow1;

items[2] = columnforrow2;

items[3] = columnforrow3;

交錯陣列其實就是由陣列構成的陣列。和二維陣列不同,交錯陣列只有一維,但那一維中的元素本身就是陣列。

Python基礎學習筆記 Day 4

目錄 1 函式的基本使用 1 1 函式簡介與功能 1 2 函式的定義 1 3 函式的使用 2 函式的引數傳遞 2.1 可選引數傳遞 2.2 引數名稱傳遞 2.3 函式的返回值 3 變數作用域 3.1 區域性變數 3.2 區域性變數 4 復用 def 函式名 引數列表 函式體 return 返回值列表...

DAY4學習筆記

流程控制的三種語法 if 用於判斷條件,為了讓計算機可以像人一樣,具有判斷的能力。1 當運用if語法時,如果滿足條件則執行某程式,可以和else連用,即反之則執行另一程式。2 if可以和elif進行多分支使用,多分支時,一旦有某一條件滿足,則不繼續執行其他條件。3 if語句的巢狀,當滿足某一條件時,...

Linux學習筆記之C語言基礎 day4

1.分支結構 if else switch 2.迴圈結構 forwhile do.while goto 3.輔助控制語句 break continue return從main函式第一句開始執行,到main函式結束,程式結束 分支結構 1.判斷 2.同一類資料執行不同操作 1.if分支 1.1簡單分支...