C 學習第二天之資料型別

2021-08-14 07:39:31 字數 3665 閱讀 8378

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

值型別變數可以直接分配給乙個值。它們是從類system.valuetype中派生的。

值型別直接包含資料。比如int、char、float,它們分別儲存數字、字母、浮點數。當您宣告乙個int型別時,系統分配記憶體來儲存值。

下表列出了 c# 2010 中可用的值型別:

型別描述

範圍預設值

bool

布林值true 或 false

false

byte

8 位無符號整數

0 到 255

0char

16 位 unicode 字元

u +0000 到 u +ffff

'\0'

decimal

128 位精確的十進位制值,28-29 有效位數

(-7.9 x 1028 到 7.9 x 1028) / 100 到 28

0.0m

double

64 位雙精度浮點型

(+/-)5.0 x 10-324 到 (+/-)1.7 x 10308

0.0d

float

32 位單精度浮點型

-3.4 x 1038 到 + 3.4 x 1038

0.0f

int32 位有符號整數型別

-2,147,483,648 到 2,147,483,647

0long

64 位有符號整數型別

-923,372,036,854,775,808 到 9,223,372,036,854,775,807

0lsbyte

8 位有符號整數型別

-128 到 127

0short

16 位有符號整數型別

-32,768 到 32,767

0uint

32 位無符號整數型別

0 到 4,294,967,295

0ulong

64 位無符號整數型別

0 到 18,446,744,073,709,551,615

0ushort

16 位無符號整數型別

0 到 65,5350

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

namespace",

sizeof

(int

));console

.readline

();}

}}

當上面的**被編譯和執行時,它會產生下列結果:

size

of int

:4

引用型別不包含儲存在變數中的實際資料,但它們包含對變數的引用。

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

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

當乙個值型別轉換為物件型別時,則被稱為裝箱;另一方面,當乙個物件型別轉換為值型別時,則被稱為拆箱

/*這個地方沒懂是什麼意思,後面自己去網上查了一下,在最後有查到的詳解*/

object

obj;

obj

=100

;// 這是裝箱

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

宣告動態型別的語法:

dynamic

=value

;

例如:

dynamicd =

20;

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

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

例如:

string

str

="runoob.com"

;

乙個 @引號字串:

@

"runoob.com"

;

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

string

str =@

"c:\windows"

;

等價於:

string

str

="c:\\windows"

;//這是個好東西,很多時候要用到字串時都用的到

@ 字串中可以任意換行,換行符及縮排空格都計算在字串長度之內。

string

str =@

"

使用者自定義引用型別有:class、inte***ce 或 delegate。我們將在以後的章節中討論這些型別。

指標型別變數儲存另一種型別的記憶體位址。c# 中的指標與 c 或 c++ 中的指標有相同的功能。

宣告指標型別的語法:

type

*identifier

;

例如:

char

*cptr

;int

*iptr

;

裝箱:值型別轉換為物件型別, 例項:

int

val =8

;object

obj

=val

;//整型資料轉換為了物件型別(裝箱)

拆箱:之前由值型別轉換而來的物件型別再轉回值型別, 例項:

int

val =8

;object

obj

=val

;//先裝箱

intnval =(

int)

obj;

//再拆箱

只有裝過箱的資料才能拆箱

obj 和int之間關係

using system;

", a); // 輸出:2: 9

console.writeline("1: ", obj); // 輸出:1: 10

console.readline();}}

}

設定值 int a=9; obj=a; 當obj改變不會對 int a 進行改變,object 只是複製了 int a 的值出來然後對其操作而已。不會影響到 int 原來的值。

C 第二天資料型別

可空型別 使用於值型別。例子 int?num null 隱式型別 編譯器自動推斷型別。var num 1 自動判別為整形 using system using system.diagnostics 執行時間相關 using system.text stringbuilder相關 namespace ...

C語言第二天 資料型別

c的令牌 關鍵字 識別符號 常量 字串值 符號等 分號 注釋 識別符號 關鍵字。注釋 c的多行注釋不是 而是 識別符號 c 識別符號是用來標識變數 函式,或任何其他使用者自定義專案的名稱。乙個識別符號以字母 a z 或 a z 或下劃線 開始,後跟零個或多個字母 下劃線和數字 0 9 如 mohd ...

C 學習第二天

方法的可選引數 static void main string args static void testinfo int a 158,int b 10,float f 0.8f b f a,b,f 下面這個方法中形式引數a為必選引數,換句話說當呼叫該方法時,至少是int a 118 testinf...