C 自學筆記(三)之資料型別

2021-09-24 10:36:04 字數 3283 閱讀 3420

在 c# 中,變數分為以下幾種型別:

值型別(value types)

引用型別(reference types)

以下**中所有型別都是值型別:值型別變數宣告後,不管是否已經賦值,編譯器為其分配記憶體。

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-mdhz8cng-1617329566058)(

一:變數的基本型別:

(1):整形有:

sbyte、byte、int、long、short、uint、ulong、ushort
(2):浮點型有:

雙精度 :decimal、double、

單精度 :float

單精度型別與多精度型別的區別

(1)在記憶體中占有的位元組數不同

*雙精度浮點數在機內佔8個位元組

(2)有效數字位數不同

*單精度浮點數有效數字8位

*雙精度浮點數有效數字16位

(3)表示數的範圍不同

*單精度浮點數的表示範圍:-3.40e+38 ~3.40e+38

雙精度浮點數的表示範圍:-1.79e+308~+1.79e+308

(4)在程式中處理的速度不同:

一般說,cpu處理單精度浮點數的速度比處理雙精度的浮點數快。

如需得到乙個型別或乙個變數在特定平台上的準確尺寸,可以使用 sizeof 方法。表示式 sizeof(type) 產生以位元組為單位儲存物件或型別的儲存尺寸。

上**:

using system;

", sizeof(int)); // 4

console.readline();}}

}

(3)物件(object)型別物件(object)型別 是 c# 通用型別系統(common type system - cts)中所有資料型別的終極基類。object 是 system.object 類的別名。所以物件(object)型別可以被分配任何其他型別(值型別、引用型別、預定義型別或使用者自定義型別)的值。但是,在分配值之前,需要先進行型別轉換。

(4)動態(dynamic)型別

您可以儲存任何型別的值在動態資料型別變數中。這些變數的型別檢查是在執行時發生的。

宣告動態型別的語法:

dynamic = value;
例如:

dynamic d = 20;
動態型別與物件型別相似,但是物件型別變數的型別檢查是在編譯時發生的,而動態型別變數的型別檢查是在執行時發生的。

(5)字串(string)型別

字串(string)型別 允許您給變數分配任何字串值。字串(string)型別是 system.string 類的別名。它是從物件(object)型別派生的。字串(string)型別的值可以通過兩種形式進行分配:引號和 @引號。

例如:

string str = "runoob.com";
乙個 @引號字串:

@"runoob.com";
c# string 字串的前面可以加 @(稱作"逐字字串")將轉義字元(\)當作普通字元對待,比如:

string str = @"c:\windows";
等價於:

string str = "c:\\windows";
@ 字串中可以任意換行,換行符及縮排空格都計算在字串長度之內。

string str = @"";
二:值型別和引用型別(1 )引用型別:可派生出新型別引用型別不包含儲存在變數中的實際資料,但它們包含對變數的引用。

換句話說,它們指的是乙個記憶體位置。使用多個變數時,引用型別可以指向乙個記憶體位置。如果記憶體位置的資料是由乙個變數改變的,其他變數會自動反映這種值的變化。

引用型別有:

陣列(派生於system.array)

使用者用定義的以下型別:

類:class(派生於system.object);

介面:inte***ce(介面不是乙個「東西」,所以不存在派生於何處的問題。anders在《c# programming language》中說,介面只是表示一種約定[contract]);

委託:delegate(派生於system.delegate)。

object(system.object的別名);

字串:string(system.string的別名)。

動態型別:dynamic

引用型別儲存位址 。

(2):值型別:不可派生出新型別

值型別變數宣告後,不管是否已經賦值,編譯器為其分配記憶體。

值型別有:

結構體:struct(直接派生於system.valuetype);

整型:sbyte(system.sbyte的別名),short(system.int16),int(system.int32),long(system.int64),byte(system.byte),ushort(system.uint16),uint(system.uint32),ulong(system.uint64),char(system.char);

浮點型:float(system.single),double(system.double);

decimal型:decimal(system.decimal)。

bool型:bool(system.boolean的別名);

列舉:enum(派生於system.enum);

可空型別(派生於system.nullable泛型結構體,t?實際上是system.nullable的別名)。

值型別儲存值。

自學之C 特殊資料型別

了解隱式型別 匿名型別和dynamic型別 掌握可空型別的用法 了解特性的用法 可選引數又稱預設引數 修飾符 返回型別 方法名 引數1 引數n,可選引數1 可選引數n 其中,必選引數一定會在可選引數的前面,而且在方法呼叫的時候必須要給引數,否則會發生編譯報錯。region bage using sy...

C語言自學篇(三)。。。C 資料型別

在 c 語言中,資料型別指的是用於宣告不同型別的變數或函式的乙個廣泛的系統。變數的型別決定了變數儲存占用的空間,以及如何解釋儲存的位模式。c 中的型別可分為 1.基本型別 它們是算術型別,包括兩種型別 整數型別和浮點型別。型別 儲存大小 值範圍char 1位元組 128到127 或 0到255 un...

Python自學筆記3 資料型別

pytho的數值型別包括 name purpose int整型 long 長整型 python3中沒有 float 浮點數complex 複數 示例 x 3 整數f 3.141529 浮點數 name python 字串 big 358315791l 長整型z complex 2 3 2 3i 複數...