c# 變量
一個變量只不過是一個供程序操作的存儲區(qū)的名字。在 c# 中,每個變量都有一個特定的類型,類型決定了變量的內(nèi)存大小和布局。范圍內(nèi)的值可以存儲在內(nèi)存中,可以對變量進行一系列操作。
我們已經(jīng)討論了各種數(shù)據(jù)類型。c# 中提供的基本的值類型大致可以分為以下幾類:
類型 | 舉例 |
---|---|
整數(shù)類型 | sbyte、byte、short、ushort、int、uint、long、ulong 和 char |
浮點型 | float 和 double |
十進制類型 | decimal |
布爾類型 | true 或 false 值,指定的值 |
空類型 | 可為空值的數(shù)據(jù)類型 |
c# 允許定義其他值類型的變量,比如 enum,也允許定義引用類型變量,比如 class。這些我們將在以后的章節(jié)中進行討論。在本章節(jié)中,我們只研究基本變量類型。
1. c# 中的變量定義
c# 中變量定義的語法:
<data_type> <variable_list>;
在這里,data_type 必須是一個有效的 c# 數(shù)據(jù)類型,可以是 char、int、float、double 或其他用戶自定義的數(shù)據(jù)類型。variable_list 可以由一個或多個用逗號分隔的標識符名稱組成。
一些有效的變量定義如下所示:
int i, j, k; char c, ch; float f, salary; double d;
您可以在變量定義時進行初始化:
int i = 100;
2. c# 中的變量初始化
變量通過在等號后跟一個常量表達式進行初始化(賦值)。初始化的一般形式為:
variable_name = value;
變量可以在聲明時被初始化(指定一個初始值)。初始化由一個等號后跟一個常量表達式組成,如下所示:
<data_type> <variable_name> = value;
一些范例:
int d = 3, f = 5; /* 初始化 d 和 f. */ byte z = 22; /* 初始化 z. */ double pi = 3.14159; /* 聲明 pi 的近似值 */ char x = 'x'; /* 變量 x 的值為 'x' */
正確地初始化變量是一個良好的編程習慣,否則有時程序會產(chǎn)生意想不到的結(jié)果。
請看下面的范例,使用了各種類型的變量:
namespace variabledefinition { ? ? class program ? ? { ? ? ? ? static void main(string[] args) ? ? ? ? { ? ? ? ? ? ? short a; ? ? ? ? ? ? int b ; ? ? ? ? ? ? double c; ? ? ? ? ? ? /* 實際初始化 */ ? ? ? ? ? ? a = 10; ? ? ? ? ? ? b = 20; ? ? ? ? ? ? c = a + b; ? ? ? ? ? ? console.writeline("a = {0}, b = {1}, c = {2}", a, b, c); ? ? ? ? ? ? console.readline(); ? ? ? ? } ? ? } }
當上面的代碼被編譯和執(zhí)行時,它會產(chǎn)生下列結(jié)果:
a = 10, b = 20, c = 30
3. 接受來自用戶的值
system 命名空間中的 console 類提供了一個函數(shù) readline(),用于接收來自用戶的輸入,并把它存儲到一個變量中。例如:
int num; num = convert.toint32(console.readline());
函數(shù) convert.toint32() 把用戶輸入的數(shù)據(jù)轉(zhuǎn)換為 int 數(shù)據(jù)類型,因為 console.readline() 只接受字符串格式的數(shù)據(jù)。
4. c# 中的 lvalues 和 rvalues
c# 中的兩種表達式:
變量是 lvalue 的,所以可以出現(xiàn)在賦值語句的左邊。數(shù)值是 rvalue 的,因此不能被賦值,不能出現(xiàn)在賦值語句的左邊。下面是一個有效的語句:
int g = 20;
下面是一個無效的語句,會產(chǎn)生編譯時錯誤:
10 = 20;