char* 聲明下面的變量是指針,指向char型量。
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),溫縣企業(yè)網(wǎng)站建設(shè),溫縣品牌網(wǎng)站建設(shè),網(wǎng)站定制,溫縣網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,溫縣網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
void* 聲明下面的變量是指針,指向void 型。
int* 聲明下面的變量是指針,指向int型量。
malloc的用法
#define ARRAY_SIZE 100
char *s;
int *a;
s = (char *) malloc( ARRAY_SIZE * sizeof(char));
if (!s) {printf("no enough memory for s\n");exit(0);};
a = (int *) malloc( ARRAY_SIZE * sizeof(int));
if (!a) {printf("no enough memory for a\n");exit(0);};
for (i=0;iARRAY_SIZE;i++) a[i] = i * 3;
printf("please input a line strings\n");
gets(s);
printf("the line is: %s \n",s);
類(lèi)型 在變量名后邊
也可不顯式聲明類(lèi)型, 類(lèi)型推斷, 但是是靜態(tài)語(yǔ)言, name一開(kāi)始放字符串就不能再賦值數(shù)字
方法,屬性 分開(kāi) 方法名首字母大寫(xiě)就是就是外部可調(diào)的
面向?qū)ο笤O(shè)計(jì)的一個(gè)重要原則:“優(yōu)先使用組合而不是繼承”
Dog 也是Animal , 要復(fù)用Animal 的屬性和方法,
只需要在結(jié)構(gòu)體 type 里面寫(xiě) Animal
入口也是main, 用用試試
多態(tài), 有這個(gè)方法就是這個(gè)接口的實(shí)現(xiàn), 具體的類(lèi) 不需要知道自己實(shí)現(xiàn)了什么接口,
使用: 在一個(gè)函數(shù)調(diào)用之前加上關(guān)鍵字go 就啟動(dòng)了一個(gè)goroutine
創(chuàng)建一個(gè)goroutine,它會(huì)被加入到一個(gè)全局的運(yùn)行隊(duì)列當(dāng)中,
調(diào)度器 會(huì)把他們分配給某個(gè) 邏輯處理器 的隊(duì)列,
一個(gè)邏輯處理器 綁定到一個(gè) 操作系統(tǒng)線(xiàn)程 ,在上面運(yùn)行g(shù)oroutine,
如果goroutine需要讀寫(xiě)文件, 阻塞 ,就脫離邏輯處理器 直接 goroutine - 系統(tǒng)線(xiàn)程 綁定
編譯成同名.exe 來(lái)執(zhí)行, 不通過(guò)虛擬機(jī), 直接是機(jī)器碼, 和C 一樣, 所以非常快
但是也有自動(dòng)垃圾回收,每個(gè)exe文件當(dāng)中已經(jīng)包含了一個(gè)類(lèi)似于虛擬機(jī)的runtime,進(jìn)行g(shù)oroutine的調(diào)度
默認(rèn)是靜態(tài)鏈接的,那個(gè)exe會(huì)把運(yùn)行時(shí)所需要的所有東西都加進(jìn)去,這樣就可以把exe復(fù)制到任何地方去運(yùn)行了, 因此 生成的 .exe 文件非常大
定義,聲明的時(shí)候,必須寫(xiě)
如
int * ip;
char * cp;
double *dp=NULL;
在使用的時(shí)候,*號(hào)并不是指針的標(biāo)志,而是一種運(yùn)算符號(hào),意思是解應(yīng)用。
int a=5;
int b=3;
int * ip=a;
那么,直接使用ip,ip是這個(gè)地址,是一個(gè)指針,比如ip=b,那么ip就指向了b。
而使用*ip,是對(duì)ip進(jìn)行解引用計(jì)算,也就是取出ip指向的內(nèi)容,*ip的值是5(a的值),*ip=b,是對(duì)ip指向的地址賦值,此時(shí)你輸出a,得到的值是3
希望能幫到你,不懂再問(wèn)我
***********************************************
一個(gè)指針,指向一個(gè)數(shù)據(jù),也就是間接地使用了這個(gè)數(shù)據(jù),我們可以稱(chēng)之為引用。
直接使用ip,就是間接使用(得到地址),通過(guò)地址解析出原始數(shù)據(jù),可以稱(chēng)之為解引用,所以*ip就得到了ip指向的數(shù)據(jù)。
可能叫做 "地址解析"之類(lèi)的你更容易明白吧
C語(yǔ)言在定義變量時(shí)加兩個(gè)星號(hào)是表明這個(gè)變量為二級(jí)指針
C語(yǔ)言中在定義變量時(shí)使用 * 號(hào)是為了表明該變量為指針
指針有分一級(jí)指針,二級(jí)指針,三級(jí)指針等,有幾個(gè) ?* ?號(hào)就相當(dāng)于是幾級(jí)指針