C#中方法的參數(shù)有四種類型: 1. 值參數(shù)類型 (不加任何修飾符,是默認(rèn)的類型) 2. 引用型參數(shù) (以ref 修飾符聲明) 3. 輸出型參數(shù) (以out 修飾符聲明) 4. 數(shù)組型參數(shù) (以params 修飾符聲明)---------------------------------------------------------------------1、值類型是方法默認(rèn)的參數(shù)類型,采用的是值拷貝的方式。
簡(jiǎn)單講就是傳遞參數(shù)到方法體內(nèi),js、asp、mvc等寫函數(shù)有帶參數(shù)的話,我們外部引用都會(huì)傳遞值進(jìn)去。function c(int c){ alert(c); return c;}var x = c(5/*5就是值參數(shù)傳遞*/);2和3、一般比較不常使用。
4、params 關(guān)鍵字可以指定在參數(shù)數(shù)目可變處采用參數(shù)的方法參數(shù)。也就是說。
使用params可以自動(dòng)把你傳入的值按照規(guī)則轉(zhuǎn)換為一個(gè)新建的數(shù)組。這個(gè)參數(shù)個(gè)數(shù)是可控的,像1不可控,寫的方法是帶幾個(gè)參數(shù)。
引用的時(shí)候就傳遞幾個(gè)值進(jìn)去public static void p(params object[] list){/*一般通過編列,計(jì)算結(jié)果*/for(var i = 0; i < list.length; i++){ alert(list[i]);}}object[] arr = new object[3] { 1, 'a', "k" };p(arr);。
C 類的定義:類是定義同一類所有對(duì)象的變量和方法的藍(lán)圖或原型。
類也可以定義類變量和類方法??梢詮念惖膶?shí)例中或者直接從類中訪問類變量和方法。
類方法只能操作類變量,不必訪問實(shí)例變量或?qū)嵗椒?。系統(tǒng)在第一次在程序中遇到一個(gè)類時(shí)為這個(gè)類建立它的所有類變量的拷貝,這個(gè)類的所有實(shí)例共享它的類變量。
C 對(duì)象的定義:定義一個(gè)類就相當(dāng)于創(chuàng)建了一個(gè)新的class類型。要使用類,還必須用已經(jīng)定義的類去說明它的實(shí)例變量(即對(duì)象)。
在C 中,class類型一旦被定義,它的實(shí)例變量(對(duì)象)就能被創(chuàng)建,并初始化,且能定義指針變量指向它。 實(shí)例化的類就是對(duì)象。
類和對(duì)象其實(shí)是C語(yǔ)言里的結(jié)構(gòu)體的延伸,在C 里,struct 和 class其實(shí)本質(zhì)上是一樣的,唯一區(qū)別就是struct默認(rèn)是公開的,class默認(rèn)是私有的,公開時(shí)需要聲明為public;還有就是C語(yǔ)言里的結(jié)構(gòu)體,不能包含函數(shù)和繼承,C 可以包含函數(shù)以及繼承其他的類。
參考地址:/zh-cn/library/x53a06bb(VS.80).aspx 在C#中可以定義兩種變量類型:值類型和引用類型。
值類型存儲(chǔ)實(shí)際值,而引用類型則為對(duì)存儲(chǔ)在內(nèi)存中某處的值的引用。值類型在堆棧上分配,大多數(shù)程序語(yǔ)言都能應(yīng)用它。
引用類型在堆上分配,通常代表類實(shí)例。在C#代碼中還可以定義自己的值和引用類型。
所有值和引用類型都由一個(gè)名為object的基本類發(fā)展而來。在C#中還可以通過隱性轉(zhuǎn)換(不會(huì)造成數(shù)據(jù)丟失)或顯性轉(zhuǎn)換(可能造成數(shù)據(jù)丟失或降低精確度)來改變數(shù)據(jù)類型。
預(yù)定義C#值類型 sbyte:存儲(chǔ)8位帶符號(hào)整數(shù)。sbyte中的s代表帶符號(hào)(signed),意味著變量可為正值或負(fù)值。
sbyte變量的最小可能值為-128,最大可能值為127。 byte:存儲(chǔ)8位無符號(hào)整數(shù)。
與sbyte變量不同,byte變量不帶符號(hào),并且只能存儲(chǔ)正數(shù)值。byte變量的最小可能值為0,最大可能值為225。
short:存儲(chǔ)16帶符號(hào)整數(shù)。short變量的最小可能值為32768,最大可能值為32767。
int:存儲(chǔ)32位帶符號(hào)整數(shù)。int變量的最小可能值為-2147483648,最大可能值為2147683647。
uint:存儲(chǔ)32位無符號(hào)整數(shù)。unit中的u代表無符號(hào)。
uint變量的最小可能值為0,最大可能值為4294967295。 long:存儲(chǔ)64位帶符號(hào)整數(shù)。
long變量的最小可能值為-9223372036845775808,最大可能值為9223372036845775807。 ulong:存儲(chǔ)64位無符號(hào)整數(shù)。
ulong中的u代表無符號(hào)。ulong變量的最小可能值為0,最大可能值為18446744073709551615。
char:存儲(chǔ)16位Unicode字符。Char變量的最小可能值為值為0的Unicode字符,最大可能值為值為655535的Unicode字符。
float:存儲(chǔ)32位還符號(hào)浮點(diǎn)值。float變量的值介于±1.5 x 10-45到±3.4 x 1038之間。
double:存儲(chǔ)64位帶符號(hào)浮點(diǎn)值。double變量的值介于±5.0 x 10-324到 ±1.7 x 10308之間。
decimal:存儲(chǔ)128位帶符號(hào)浮點(diǎn)值。decimal類型變量適用于金融計(jì)算。
decimal類型變量的值介于±1.0 x 10-28到±7.9 x 1028之間。 bool:存儲(chǔ)兩個(gè)可能值——真或假——中的一個(gè)。
應(yīng)用bool類型變量是C#與C和C++不同的一個(gè)地方。在C和C++中,整數(shù)值0與假同義,而任何非零值與真同義。
但在C#中,這些類型不再同義。你不能將一個(gè)整數(shù)變量轉(zhuǎn)換成一個(gè)等同的bool值。
如果你需要應(yīng)用一個(gè)表示真或假條件的變量,應(yīng)使用bool變量而非int變量。 預(yù)定義C#引用類型 string:表示一個(gè)Unicode字符串。
用它可輕松操作并分配字符串。字符串不可變,也就是說它一旦建立就不能修改。
因此當(dāng)你試圖修改一個(gè)字符串,如將它與另一個(gè)字符串連接時(shí),會(huì)建立一個(gè)新字符串對(duì)象來存儲(chǔ)新生成的字符串。 object:表示一個(gè)通用類型。
在C#中,所有的預(yù)定義和用戶定義的類型都由object類型或System.Object類發(fā)展而來。每個(gè)類都創(chuàng)造了有自己的名字空間,指方法和變量可以知道彼此的存在,可以使用。
public類不但可以被同一程序包中的其它類使用,別的程序包中的類也可以使用; 變量和方法的修飾字public、protected、private: public:任何其他類、對(duì)象只要可以看到這個(gè)類的話,那么它就可以存取變量的數(shù)據(jù),或使用方法。 protected變量和方法: 如果一個(gè)類中變量或方法有修飾字protected,同一類、同一包可以使用。
不同包的類要使用,必須是該類的子類,可以存取變量或調(diào)用。 同包的類 不同包但是是子類 private不允許任何其他類存取和調(diào)用; 當(dāng)子類中的變量名與父類的相同,原來的變量被遮蓋。
方法的覆蓋(overriding)和重載(overloading)。子孫類中定義的方法和祖先類中某個(gè)方法同名、同參數(shù)行,則祖先類中的該方法被覆蓋;方法的重載是指一個(gè)對(duì)象的多態(tài)性,即多個(gè)方法用相同的名稱,但參數(shù)行不同。
final: final在方法之前,防止該方法被覆蓋; final在類之前,標(biāo)是該類不能被繼承; final在變量之前,定義一個(gè)常量。 static: 在變量或方法之前,表明它們是屬于類的; 靜態(tài)變量在各實(shí)例間共享,如果是public靜態(tài)變量,則其它類可以不通過實(shí)例化訪問它們; 靜態(tài)方法稱為類的方法,因此不用實(shí)例化即可調(diào)用(面向過程) 一個(gè)對(duì)象的方法可以訪問對(duì)象的數(shù)據(jù)成員,盡管不屬于方法的局部變量;一個(gè)類的方法只能訪問自己的局部變量。
當(dāng)需要為變量、常量以及函數(shù)定義并分配存儲(chǔ)空間時(shí),要定義數(shù)據(jù)類型。
C/C++ 數(shù)據(jù)類型C語(yǔ)言包含5個(gè)基本數(shù)據(jù)類型: void, integer, float, double, 和 char.
類型 描述
void 空類型
int 整型
float 浮點(diǎn)類型
double 雙精度浮點(diǎn)類型
char 字符類型
C++ 定義了另外兩個(gè)基本數(shù)據(jù)類型: bool 和 wchar_t.
類型 描述
bool 布爾類型, 值為true 或 false
wchar_t 寬字符類型
類型修飾符
一些基本數(shù)據(jù)類型能夠被 signed, unsigned, short, 和 long 修飾. 當(dāng)類型修飾符單獨(dú)使用的時(shí)候, 默認(rèn)的類型是 int. 下表是所有可能出現(xiàn)的數(shù)據(jù)類型:
bool
char
unsigned char
signed char
int
unsigned int
signed int
short int
unsigned short int
signed short int
long int
signed long int
unsigned long int
float
double
long double
wchar_t
類型大小和表示范圍
基本數(shù)據(jù)類型的大小以及能夠表示的數(shù)據(jù)范圍是與編譯器和硬件平臺(tái)有關(guān)的. "cfloat" (或者 "float.h") 頭文件往往定義了基本數(shù)據(jù)類型能夠表示的數(shù)據(jù)的最大值和最小值. 你也可以使用 sizeof 來獲得類型的大?。ㄗ止?jié)數(shù)) . 然而, 很多平臺(tái)使用了一些數(shù)據(jù)類型的標(biāo)準(zhǔn)大小,如. int 和 float 通常占用 32位, char 占用 8位, double 通常占用64位. bools 通常以 8位 來實(shí)現(xiàn).
C語(yǔ)言的基本數(shù)據(jù)類型為:整型、字符型、實(shí)數(shù)型。
這些類型按其在計(jì)算機(jī)中的存儲(chǔ)方式可被分為兩個(gè)系列,即整數(shù)(integer)類型和浮點(diǎn)數(shù)(floating-point)類型。
這三種類型之下分別是:short、int、long、char、float、double 這六個(gè)關(guān)鍵字再加上兩個(gè)符號(hào)說明符signed和unsigned就基本表示了C語(yǔ)言的最常用的數(shù)據(jù)類型。
下面列出了在32位操作系統(tǒng)下 常見編譯器下的數(shù)據(jù)類型大小及表示的數(shù)據(jù)范圍:
擴(kuò)展資料:
在c語(yǔ)言中,為了定義變量、表達(dá)語(yǔ)句功能和對(duì)一些文件進(jìn)行預(yù)處理,還必須用到一些具有特殊意義的字符,這就是關(guān)鍵字,我們用戶自己定義的變量函數(shù)名等要注意不可以與關(guān)鍵字同名。
參考資料來源:搜狗百科-C語(yǔ)言
C語(yǔ)言的三種基本數(shù)據(jù)類型為整型,實(shí)型,字符型。
1 整型,包括short, int, long等,用以表示一個(gè)整數(shù),默認(rèn)為有符號(hào)型,配合unsigned關(guān)鍵字,可以表示為無符號(hào)型。
2 實(shí)型,即浮點(diǎn)型,包括float, double等,用來表示實(shí)數(shù),相對(duì)于整型,該類型可以表示帶有小數(shù)部分的數(shù)值。需要注意的是,實(shí)型在計(jì)算機(jī)語(yǔ)言中為近似值表示,并非準(zhǔn)確值,在多次計(jì)算后可能會(huì)出現(xiàn)真值偏差。
3 字符型,即char型,用來表示各種字符,與ascii碼表一一對(duì)應(yīng)。除可以用來表示各類字符外,char型的其它規(guī)則與整型相同,可以認(rèn)為char是一種特殊的整型。
1、整型int2(或4)同短整型(或長(zhǎng)整型)
2、短整型short2-32768~32767
3、長(zhǎng)整型long4-2的31次方~2的31次方-1
4、無符號(hào)整型unsigned[int]2(或4)同無符號(hào)短整型(長(zhǎng)整型)
5、無符號(hào)短整型unsignedshort20~65535(0~2的16次方-1)
6、無符號(hào)長(zhǎng)整型unsignedlong40~2的32次方-1
7、單精度實(shí)型float4-10的38次方~10的38次方
8、雙精度實(shí)型double8-10的308次方~10的308次方
9、字符型char1-128~127
擴(kuò)展資料
unsignedlong的使用
例:
#include<cstdio>
intmain()
{
unsignedintui=-1;
unsignedlongul=-1;
unsignedlonglongull=-1;
size_tst=-1;
printf("ui=%u,ul=%lu,ull=%llu,st=%zu\n",ui,ul,ull,st);
return0;
}
c語(yǔ)言的變量有三種類型:char,int,float,double 其中char為字符類型的變量是八位的,最前一位作為符號(hào)位,后面七位作為數(shù)據(jù)位.它的存儲(chǔ)范圍在-128到127之間. int整數(shù)類型的變量是16位的,最前一位為符號(hào)位,后面的15位作為數(shù)據(jù)位.它的存儲(chǔ)范圍在-215到215-1.也就是-32768到32767.它不包擴(kuò)小數(shù)點(diǎn)以后的數(shù),在一般編譯器中給int類型賦予帶有小數(shù)的數(shù).編譯器會(huì)自動(dòng)去掉小數(shù)點(diǎn)后面的數(shù)保留整數(shù)部分. float為浮點(diǎn)數(shù)類型.首先要說明的是浮點(diǎn)數(shù)有兩部分組成,第一部分是指數(shù),也就是多少次冪嘛.第二部分是由尾數(shù)組成也就是一個(gè)數(shù)科學(xué)表示發(fā)之后除去冪那部分剩下的(呵呵!?。。┤?.33333.那么c中的浮點(diǎn)數(shù)就有三部分.32位的浮點(diǎn)數(shù)第一位就是第一部分它決定數(shù)的符號(hào).第二部分是八位的指數(shù).第三部分是23位的尾數(shù).所以浮點(diǎn)數(shù)具有6到7位的存儲(chǔ)精確度.范圍為3.4e-38到3.4e+38的數(shù)值.注:3.1415926e+7表示3.1415926.0.在給浮點(diǎn)數(shù)賦值的時(shí)候可以采用如下方法.123.45和1.2345e2是等價(jià)的. double為雙精度型變量.c編譯器通常用64位來存儲(chǔ)雙精度性變量.它的精確度能夠達(dá)到14到15位.64位中第一位是符號(hào)位.后面的11位是指數(shù)位.最后的52位是尾數(shù).它的范圍是-1.7e-308到1.7e+308. 類型標(biāo)識(shí)符:unsigned,short,register,long和signed. 其中unsigned提示編譯器不要保留符號(hào)位,這樣可以擴(kuò)大數(shù)據(jù)類型正數(shù)的范圍.比如unsigned int的范圍就變位0到65535了. short類型用在有的編譯器不能給太大的存儲(chǔ)范圍,需要給一個(gè)比較低的溢出界限.比如有的編譯器就用的是32位來存儲(chǔ)int類型.用short來標(biāo)識(shí)它可以保證int是用16位來標(biāo)識(shí)的. register表示一個(gè)變量可能會(huì)用得很頻繁.需要很快得存取速度所以指定的把它存到寄存器當(dāng)中. long表示不希望用16位來存儲(chǔ)整形變量時(shí)可以用long指定它用32位來存儲(chǔ)可以得到更大得表示范圍. 當(dāng)然還有l(wèi)ong unsigned int 這樣得類型. 用戶自定義數(shù)據(jù)類型 用戶可以使用typedef來自己定義自己需要得數(shù)據(jù)類型.如下例: typedef unsigned long int myint; myint num1; 這樣num1就是unsigned long int類型的了.。
位域 有些信息在存儲(chǔ)時(shí),并不需要占用一個(gè)完整的字節(jié), 而只需占幾個(gè)或一個(gè)二進(jìn)制位。例如在存放一個(gè)開關(guān)量時(shí),只有0和1 兩種狀態(tài), 用一位二進(jìn)位即可。為了節(jié)省存儲(chǔ)空間,并使處理簡(jiǎn)便,C語(yǔ)言又提供了一種數(shù)據(jù)結(jié)構(gòu),稱為“位域”或“位段”。所謂“位域”是把一個(gè)字節(jié)中的二進(jìn)位劃分為幾 個(gè)不同的區(qū)域, 并說明每個(gè)區(qū)域的位數(shù)。每個(gè)域有一個(gè)域名,允許在程序中按域名進(jìn)行操作。 這樣就可以把幾個(gè)不同的對(duì)象用一個(gè)字節(jié)的二進(jìn)制位域來表示。 一、位域的定義和位域變量的說明位域定義與結(jié)構(gòu)定義相仿,其形式為: struct 位域結(jié)構(gòu)名 { 位域列表 }; 其中位域列表的形式為: 類型說明符 位域名:位域長(zhǎng)度 例如: struct bs { int a:8; int b:2; int c:6; }; 位域變量的說明與結(jié)構(gòu)變量說明的方式相同。 可采用先定義后說明,同時(shí)定義說明或者直接說明這三種方式。例如: struct bs { int a:8; int b:2; int c:6; }data; 說明data為bs變量,共占兩個(gè)字節(jié)。其中位域a占8位,位域b占2位,位域c占6位。對(duì)于位域的定義尚有以下幾點(diǎn)說明: 1. 一個(gè)位域必須存儲(chǔ)在同一個(gè)字節(jié)中,不能跨兩個(gè)字節(jié)。如一個(gè)字節(jié)所剩空間不夠存放另一位域時(shí),應(yīng)從下一單元起存放該位域。也可以有意使某位域從下一單元開始。例如: struct bs { unsigned a:4 unsigned :0 /*空域*/ unsigned b:4 /*從下一單元開始存放*/ unsigned c:4 } 在這個(gè)位域定義中,a占第一字節(jié)的4位,后4位填0表示不使用,b從第二字節(jié)開始,占用4位,c占用4位。 2. 位域的長(zhǎng)度不能大于一個(gè)int的長(zhǎng)度,也就是說不能超過32位。 3. 位域可以無位域名,這時(shí)它只用來作填充或調(diào)整位置。無名的位域是不能使用的。例如: struct k { int a:1 int :2 /*該2位不能使用*/ int b:3 int c:2 }; 從以上分析可以看出,位域在本質(zhì)上就是一種結(jié)構(gòu)類型, 不過其成員是按二進(jìn)位分配的。 二、位域的使用 位域的使用和結(jié)構(gòu)成員的使用相同,其一般形式為: 位域變量名·位域名 位域允許用各種格式輸出。 main(){ struct bs { unsigned a:1; unsigned b:3; unsigned c:4; } bit,*pbit; bit.a=1; bit.b=7; bit.c=15; printf("%d,%d,%d\n",bit.a,bit.b,bit.c); pbit=&bit; pbit->a=0; pbit->b&=3; pbit->c|=1; printf("%d,%d,%d\n",pbit->a,pbit->b,pbit->c); } 上例程序中定義了位域結(jié)構(gòu)bs,三個(gè)位域?yàn)閍,b,c。說明了bs類型的變量bit和指向bs類型的指針變量pbit。這表示位域也是可以使用指針的。 程序的9、10、11三行分別給三個(gè)位域賦值。( 應(yīng)注意賦值不能超過該位域的允許范圍)程序第12行以整型量格式輸出三個(gè)域的內(nèi)容。第13行把位域變量bit的地址送給指針變量pbit。第14行用指針 方式給位域a重新賦值,賦為0。第15行使用了復(fù)合的位運(yùn)算符"&=", 該行相當(dāng)于: pbit->b=pbit->b&3位域b中原有值為7,與3作按位與運(yùn)算的結(jié)果為3(111&011=011,十進(jìn)制值為 3)。同樣,程序第16行中使用了復(fù)合位運(yùn)算"|=", 相當(dāng)于: pbit->c=pbit->c|1其結(jié)果為15。程序第17行用指針方式輸出了這三個(gè)域的值。 為了節(jié)省空間,可以把幾個(gè)數(shù)據(jù)壓縮到少數(shù)的幾個(gè)類型空間上,比如需要表示二個(gè)3位二進(jìn)制的數(shù),一個(gè)2位二進(jìn)制的數(shù),則可以用一個(gè)8位的字符表示之。 struct { char a : 3; char b : 3; char c : 2; } ; 這個(gè)結(jié)構(gòu)體所占空間為一個(gè)字節(jié),8位。節(jié)省了空間。
滿意請(qǐng)采納
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁(yè)面生成時(shí)間:3.711秒