C 學習日記03 資料型別

2021-07-05 13:39:26 字數 3813 閱讀 8728

c#資料型別

c#語言是一種強型別的語言,在程式中用到的變數、表示式、數值等都必須要有型別。對於程式中每乙個用於儲存資訊的量,使用時我們都必須宣告他的資料型別,以便編譯器為他分配記憶體空間。c#的資料型別可以分為兩大部分:值型別和引用型別(常用的2個  string 和 object)。

由於c#強型別的特點,因此在c#中一種資料型別也就是乙個類。比如 整型 int他的真名為system.int32();

基本資料型別 (別名)

fcl資料型別(真名)

說明objesct 

system.objest

所有其它型別的基型別

string

system.string

unicode字串行

decimal

system.decimal

有28位小數的高度精度浮點數

bool

system.boolean

true或false

char  

system.char

16位unicode字元

byte 

system.byte 

8位無符號整型

short

system.int16 

16位有符號整型

int 

system.int32

32位有符號整型

long

system.int64 

64位有符號整型

ushort 

system.uint16

16位無符號整型

uint

system.uint32

32位無符號整型

ulong 

system.uint64 

64位無符號整型

single(float)

system.single

單精度浮點型別

double

system.double 

雙精度浮點型別

sbyte 

system.sbyte

8位有符號整型

由上表我們看的出,基本型別直接對映到基類庫中的型別,因此兩者之間可以互換,也就是說我們定義乙個int型的變數,

int x = 12;    (發現與c/c++定義資料型別類似)

可以寫成這樣:  system.int32 x = new system.int32(12);

不同的型別定義的範圍也有所不同:

名稱範圍

sbyte

-2^7~2^7-1

short

-32768~32767

int-2^31~2^31-1

long

-2^63~2^63-1

byte

0~2^8-1

ushort

0~2^16-1

uint

0~2^32-1

ulong

0~2^64-1

char

表示乙個16位的字元

float資料型別用於較小的浮點數,因為它要求的精度較低。

double資料型別比float資料型別大,提供的精

度也大一倍(15位)。在c#編譯器一般預設小數型別為double型別,

如果想指定該值為float,可以在其後加上字元f(或f),如:

float f = 12.3f;

decimal型別專門用於進行財務計算,高精度(28位)。

要把數字指定為decimal型別,可以在數字的後面加上字元m或(m),如:

decimal d=12.30m;

c#變數名命名規則:

1)、由字母、數字或下劃線"_"組成

2)、必須由「字母」

或下劃線"_"

開頭,不能以數字開頭

3)、不能是c#中的關鍵字 如:int、string、bool、main、class等 

4)、區分大小寫  如:小寫的a  和  大寫的a 是兩個變數

下面就寫個例子吧,要求由使用者輸入 姓名  年齡  身高  工資 性別然後輸出「我的名字是:xx,性別是:xx,今年xx歲,身高是:xx,工資是:xx」

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace example

,是個孩子,今年歲了,我的身高是公尺,工資有元",name,***,age,hight,salary); //輸出資訊}}

}

得到的結果是:

唉!又是這種黑面框,黑咕隆咚的醜死,以後學了winform應該會好點吧 !

基於02日記中的輸入與輸出,通過查閱又get了一項新的輸出技能,在上面的最後一行**中有 ,,。。。可以有很多個,這一對「{}」叫佔位符,,,(以下是我個人理解)就是我們在程式輸出的時候挖 的乙個又乙個坑,然後再用第乙個引數(「」中的內容是乙個string型別的引數,引數與引數之間用逗號「,」隔開)後面的引數按順序去填好  (有點俗阿)。  

本著學無止境的探索精神,我又對他進行了一番探索;    當我們用佔位符 的時候一定要按照,,......這個順序來嗎?我試著改一下還是以上的**,,後面的順序改為這樣  ,,,,。編譯沒有抱錯但是執行輸出的時候列印不出來,可能就是那個10的問題,原來不能跳著挖坑的,那就這樣   ,,,,,這次沒跳了,交換了順序,編譯沒錯能執行,但是結果是這樣:

完全喪失常理 了 結果亂了。仔細觀察後發現其實那個0,1,2,3,4是 給後面引數編的序號,{}裡面是誰的序號就呼叫誰。

本著每日三省吾身的好學精神我又有疑惑了,在02日記中我輸出aaa與bbb的時候我用了雙引號 「」 表示字串,但是如果我想輸出雙引號該咋辦呢?想了好久,去網上查了下才知道 可以用\加符號就可以輸出啦,於是我寫了個不要臉的程式:

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace example}}

結果是:

(哈哈,,沒羞沒臊的)總之 雙引號是成功輸出來了

本著做乙個勇於探索的人,我又發現:輸出雙引號的時候我用  \  來不讓他轉義 ,那要是我想輸出 \ 該咋辦呢?

可能是在 \ 前面再加個 \ 試了下沒錯 \\能夠 輸出 \ 所以要輸出\\就得 寫\\\  以此類推  感覺挺麻煩的,於是又找了個一勞永逸

的方法  「@"  ,,,console.writeline(@"\\\");

結果輸出     \\\   不變



03 資料型別

值型別 基本資料型別是go語言實際的原子,復合資料型別是由不同的方式組合基本型別構造出來的資料型別,如 陣列,slice,map,結構體 整型 int8 uint 基礎型別之數字型別 浮點型 float32,float64 基礎型別之數字型別 複數 基礎型別之數字型別 布林型 bool 基礎型別,只...

03 資料型別

資料型別包括 基本資料型別和引用資料型別。基本資料型別指的是簡單的資料段,引用資料型別指的是有多個值構成的物件。當我們把變數賦值給乙個變數時,解析器首先要確認的就是這個值是基本型別值還是引用型別值。1 基本資料型別 number var a 123 typeof 檢查當前變數是什麼資料型別 cons...

03 資料型別

資料型別包括 基本資料型別和引用資料型別 基本資料型別指的是簡單的資料段,引用資料型別指的是有多個值構成的物件。當我們把變數賦值給乙個變數時,解析器首先要確認的就是這個值是基本型別值還是引用型別值 var a 123 typeof 檢查當前變數是什麼資料型別 console.log typeof a...