C語言是面向過程的毫深,而C++是面向?qū)ο蟮?/p>
C和C++的區(qū)別:
C是一個(gè)結(jié)構(gòu)化語言坡疼,它的重點(diǎn)在于算法和數(shù)據(jù)結(jié)構(gòu)不恭。C程序的設(shè)計(jì)首要考慮的是如何通過一個(gè)過程歌憨,對(duì)輸入(或環(huán)境條件)進(jìn)行運(yùn)算處理得到輸出(或?qū)崿F(xiàn)過程(事務(wù))控制)着憨。
C++,首要考慮的是如何構(gòu)造一個(gè)對(duì)象模型务嫡,讓這個(gè)模型能夠契合與之對(duì)應(yīng)的問題域甲抖,這樣就可以通過獲取對(duì)象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過程(事務(wù))控制。 所以C與C++的最大區(qū)別在于它們的用于解決問題的思想方法不一樣植袍。之所以說C++比C更先進(jìn)惧眠,是因?yàn)椤?設(shè)計(jì)這個(gè)概念已經(jīng)被融入到C++之中 ”。
C與C++的最大區(qū)別:在于它們的用于解決問題的思想方法不一樣于个。之所以說C++比C更先進(jìn)氛魁,是因?yàn)椤?設(shè)計(jì)這個(gè)概念已經(jīng)被融入到C++之中 ”,而就語言本身而言厅篓,在C中更多的是算法的概念秀存。那么是不是C就不重要了,錯(cuò)羽氮!算法是程序設(shè)計(jì)的基礎(chǔ)或链,好的設(shè)計(jì)如果沒有好的算法,一樣不行档押。而且澳盐,“C加上好的設(shè)計(jì)”也能寫出非常好的東西。
C語言中的鏈表是重點(diǎn)令宿,也是難點(diǎn)叼耙,而且意義非凡。對(duì)鏈表的的抽象和恐懼是源于對(duì)它的來龍去脈的不明白粒没。所以很有必要對(duì)它的發(fā)展淵源做透徹分析筛婉。
鏈表的單位是節(jié)點(diǎn),而節(jié)點(diǎn)源于復(fù)合數(shù)據(jù)類型:結(jié)構(gòu)體癞松;
節(jié)點(diǎn)和結(jié)構(gòu)體的區(qū)別就是看是否有指針域爽撒,目的就是想找到下一個(gè)節(jié)點(diǎn);
結(jié)構(gòu)體形如:
struct Ghost
{
char name[30];
int age;
int height;
char addr[30];
};
節(jié)點(diǎn)形如:
struct Ghost
{
char name[30];
int age;
int height;
char addr[30];
struct Ghost *next;
};
現(xiàn)在來看一下創(chuàng)建1個(gè)節(jié)點(diǎn)的情況:
小編推薦一個(gè)學(xué)C語言/C++的學(xué)習(xí)裙【 七三零响蓉,一三零硕勿,二二一 】,無論你是大牛還是小白厕妖,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)首尼!裙內(nèi)有開發(fā)工具挑庶,很多干貨和技術(shù)資料分享!
效果如下:
那么申請(qǐng)多個(gè)節(jié)點(diǎn)呢软能?如3個(gè)迎捺。
核心代碼如下:
//堆中申請(qǐng)變量
struct Ghost *g1 = (struct Ghost*)malloc(sizeof(struct Ghost));
struct Ghost *g2 = (struct Ghost*)malloc(sizeof(struct Ghost));
struct Ghost *g3 = (struct Ghost*)malloc(sizeof(struct Ghost));
//賦值
strcpy(g1->name, "聶小倩");
g1->age = 22;
g1->height = 165;
strcpy(g1->addr, "蘭若寺");
g1->next = NULL;
//賦值
strcpy(g2->name, "付清風(fēng)");
g2->age = 23;
g2->height = 166;
strcpy(g2->addr, "十里亭");
g2->next = NULL;
//賦值
strcpy(g3->name, "東方不敗");
g3->age = 24;
g3->height = 167;
strcpy(g3->addr, "黑木崖");
g3->next = NULL;
//遍歷
printf("姓名:%s ", g1->name);
printf("年齡:%d ", g1->age);
printf("身高:%d ", g1->height);
printf("地址:%s ", g1->addr);
//遍歷
printf("姓名:%s ", g2->name);
printf("年齡:%d ", g2->age);
printf("身高:%d ", g2->height);
printf("地址:%s ", g2->addr);
//遍歷
printf("姓名:%s ", g3->name);
printf("年齡:%d ", g3->age);
printf("身高:%d ", g3->height);
printf("地址:%s ", g3->addr);
效果圖:
小編推薦一個(gè)學(xué)C語言/C++的學(xué)習(xí)裙【 七三零,一三零查排,二二一 】凳枝,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)跋核!裙內(nèi)有開發(fā)工具岖瑰,很多干貨和技術(shù)資料分享!
成功是成功了砂代,但這很原始蹋订,可以改進(jìn)的:借助成員指針的力量自動(dòng)去找下一個(gè),讓鏈起來刻伊!
對(duì)賦值做改動(dòng):
那么遍歷就可以改進(jìn)了:
效果:
小編推薦一個(gè)學(xué)C語言/C++的學(xué)習(xí)裙【 七三零露戒,一三零,二二一 】捶箱,無論你是大牛還是小白智什,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具丁屎,很多干貨和技術(shù)資料分享荠锭!
這樣,我只要知道第1個(gè)節(jié)點(diǎn)的位置晨川,后面的就可以一股腦的扯出來证九。這就是鏈表。
特點(diǎn):鏈表是一連串節(jié)點(diǎn)鏈起來的共虑,是線性特點(diǎn)甫贯。只要拿第1個(gè)節(jié)點(diǎn),就可以把一堆的節(jié)點(diǎn)都找到看蚜。就像貪吃蛇一樣,蛇頭走到哪里赔桌,蛇身和蛇尾就跟到哪里供炎。
和數(shù)組類似,數(shù)組的第1個(gè)元素的首地址就是數(shù)組的地址疾党;鏈表的第1個(gè)節(jié)點(diǎn)的地址就是鏈表的首地址音诫;
接下來就可以封裝出操作鏈表的函數(shù)了,如:遍歷鏈表雪位,添加節(jié)點(diǎn)竭钝,刪除節(jié)點(diǎn),統(tǒng)計(jì)節(jié)點(diǎn)。
這些是C/C++能做的
服務(wù)器開發(fā)工程師香罐、人工智能卧波、云計(jì)算工程師、信息安全(黑客反黑客)庇茫、大數(shù)據(jù) 港粱、數(shù)據(jù)平臺(tái)、嵌入式工程師旦签、流媒體服務(wù)器查坪、數(shù)據(jù)控解、圖像處理宁炫、音頻視頻開發(fā)工程師偿曙、游戲服務(wù)器、分布式系統(tǒng)羔巢、游戲輔助等