什么是C++?
C++是C語(yǔ)言的擴(kuò)展,1979年由C++之父Bjarne Stroustrup開(kāi)發(fā),起初的目的就是C with Classes,在構(gòu)建大型項(xiàng)目這塊,他認(rèn)為現(xiàn)有的編程語(yǔ)言都不太理想,所以就在C語(yǔ)言的基礎(chǔ)上進(jìn)一步開(kāi)發(fā)。為什么基于C語(yǔ)言,因?yàn)镃語(yǔ)言當(dāng)時(shí)已經(jīng)是一種通用語(yǔ)言,它的效率高、速度也快。
C++是一種復(fù)雜、通用、高效的編程語(yǔ)言,它的自由度、編譯性語(yǔ)言、支持多范式編程的特點(diǎn),很適合中級(jí)程序員。
C++的歷史
C++在1985年首次發(fā)布,但直到1998年才發(fā)布第一個(gè)標(biāo)準(zhǔn)版本C++98,03年發(fā)布了C++03標(biāo)準(zhǔn),主要修復(fù)了98中發(fā)現(xiàn)的一些錯(cuò)誤,又增強(qiáng)了它的可移植性。
下一次重要升級(jí)是在2011年,就是我們常說(shuō)的C++11,也可以理解為是讓C++徹底翻身立棍的一次升級(jí)。
然后是C++14,主要修復(fù)了C++11的一些問(wèn)題。
再就是C++17,引入了幾個(gè)新特性和更廣泛的標(biāo)準(zhǔn)庫(kù)。
再三年后就是C++20,再三年就是C++23,估計(jì)以后也都是三年一個(gè)周期來(lái)更新標(biāo)準(zhǔn)。
C++為什么經(jīng)久不衰?
全球有超過(guò)440w人都在使用C++,很多現(xiàn)代化的系統(tǒng),如搜索引擎、VR應(yīng)用、數(shù)據(jù)庫(kù)、操作系統(tǒng)、web瀏覽器,甚至電影制作,都是由C++代碼支持的。
Adobe產(chǎn)品、虛幻引擎、Chrome和Firefox瀏覽器也都是用C++構(gòu)建的。
因?yàn)樗乃俣瓤欤运趯?duì)性能有極致要求的領(lǐng)域非常受歡迎。
另外,最新發(fā)布的C++20標(biāo)準(zhǔn)也非常受歡迎。
C++目前依舊非常流行,它依舊是值得學(xué)習(xí)的語(yǔ)言,它金融、應(yīng)用開(kāi)發(fā)、游戲開(kāi)發(fā)、虛擬現(xiàn)實(shí)等多個(gè)行都有廣闊的就業(yè)市場(chǎng)。
C++最主要的用途是開(kāi)發(fā)基礎(chǔ)軟件設(shè)施,和在有限資源的條件上運(yùn)行的應(yīng)用程序。因?yàn)樗幸环N獨(dú)特的能力,可以直接操作它所運(yùn)行的硬件或者機(jī)器,即使在硬件空間資源受限的情況下,C++程序依舊可以高效的運(yùn)行,所以在這種條件下,C++幾乎是完美的選擇。
C++有什么優(yōu)勢(shì)?
簡(jiǎn)單列舉幾個(gè):
速度:低級(jí)編程語(yǔ)言比高級(jí)編程語(yǔ)言(如Java、Python)要快得多,由于C++是C的擴(kuò)展版本,所以它是最快的幾個(gè)編程語(yǔ)言之一。
效率:C++有一個(gè)標(biāo)準(zhǔn)模板庫(kù)STL,這些庫(kù)提供了很多通用高效的算法,讓我們開(kāi)發(fā)時(shí)節(jié)省了很多時(shí)間和精力。
可以自由選擇編程風(fēng)格:它支持多種編程范式,你可以選擇自己喜歡的風(fēng)格開(kāi)發(fā)。
支持面向?qū)ο螅浩渌奈恼挛覀冊(cè)斄倪@個(gè)話(huà)題
編譯型語(yǔ)言:可以在運(yùn)行前發(fā)現(xiàn)很多錯(cuò)誤,減少了運(yùn)行時(shí)調(diào)試的時(shí)間,也減少了一些bug的產(chǎn)生。
C++有什么應(yīng)用場(chǎng)景?
操作系統(tǒng)
游戲開(kāi)發(fā)
桌面端程序:Adobe的很多產(chǎn)品Photoshop等都是C++開(kāi)發(fā)的
瀏覽器:Google Edge
數(shù)據(jù)庫(kù):MySQL、MongoDB
云計(jì)算和分布式應(yīng)用
很多開(kāi)源庫(kù):Tensorflow等
為什么學(xué)習(xí)C++?
幫助你更好的理解底層操作系統(tǒng)和計(jì)算機(jī)體系結(jié)構(gòu),C++是一種直接與硬件交互的低級(jí)語(yǔ)言,它會(huì)方便你了解計(jì)算機(jī)內(nèi)存是如何工作的,以及信息是如何存儲(chǔ)的等等底層知識(shí)。
它目前依舊被廣泛的使用,瀏覽器、游戲、操作系統(tǒng)、編譯器、自動(dòng)駕駛,等等,都在用C++。
掙錢(qián)
C++職業(yè)前景
只有你有合格的C++編程能力,你就會(huì)有很好的工作機(jī)會(huì),會(huì)有比較客觀的薪水和職業(yè)前景,要知道招聘一個(gè)C++程序員其實(shí)是很難的,學(xué)C++有可能會(huì)讓你在程序員這條路上走得更遠(yuǎn)。
當(dāng)然薪水還是取決于你的技術(shù)水平、所在城市、所在公司等。
那要掌握多少C++技術(shù)才能勝任這個(gè)領(lǐng)域的工作?答案應(yīng)該是:總有更多的東西要學(xué)。
C++更新頻率較高,不論你是初學(xué)者還是有幾十年編程經(jīng)驗(yàn)的專(zhuān)家。你掌握的知識(shí)和技能越多,你就越有可能獲得一份體面的工作和不錯(cuò)的薪水。
關(guān)于C++學(xué)習(xí)的一些建議
長(zhǎng)期主義:C++學(xué)習(xí)需要日積月累,在任何情況下都不要指望一周內(nèi)就徹底學(xué)會(huì)C++。
多學(xué)習(xí)多思考:C++有很多東西要學(xué),你需要花大量時(shí)間了解基礎(chǔ)知識(shí),也需要多思考并多向別人提問(wèn)
實(shí)戰(zhàn):實(shí)戰(zhàn),實(shí)戰(zhàn),還是實(shí)戰(zhàn),實(shí)戰(zhàn)是掌握知識(shí)的最好方法。
不要害怕bug:無(wú)論是自己的還是他人的程序,當(dāng)你嘗試解決這些bug時(shí),你會(huì)學(xué)到更多的東西,因?yàn)檫@可能讓你被迫進(jìn)入到你的知識(shí)盲區(qū)。
閱讀不同人的代碼:學(xué)習(xí)不同的C++編碼風(fēng)格,自學(xué)會(huì)讓你眼界變窄,多出去走走看看。通過(guò)閱讀別人的代碼,了解下別人是如何思考的,對(duì)你的學(xué)習(xí)很有幫助。
參加社區(qū):比如StackOverflow。
審核編輯 :李倩
-
編碼
+關(guān)注
關(guān)注
6文章
958瀏覽量
54964 -
編程語(yǔ)言
+關(guān)注
關(guān)注
10文章
1951瀏覽量
35007 -
C++
+關(guān)注
關(guān)注
22文章
2114瀏覽量
73878
原文標(biāo)題:C++入坑指南
文章出處:【微信號(hào):C語(yǔ)言與CPP編程,微信公眾號(hào):C語(yǔ)言與CPP編程】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
Spire.XLS for C++組件說(shuō)明
![Spire.XLS for <b class='flag-5'>C++</b>組件說(shuō)明](https://file1.elecfans.com/web3/M00/05/E7/wKgZO2eFwUuAbuoQAAAbn_khf8A091.png)
EE-112:模擬C++中的類(lèi)實(shí)現(xiàn)
![EE-112:模擬<b class='flag-5'>C++</b>中的類(lèi)實(shí)現(xiàn)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
同樣是函數(shù),在C和C++中有什么區(qū)別
C7000 C/C++優(yōu)化指南用戶(hù)手冊(cè)
![<b class='flag-5'>C</b>7000 <b class='flag-5'>C</b>/<b class='flag-5'>C++</b>優(yōu)化<b class='flag-5'>指南</b>用戶(hù)手冊(cè)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
ARM優(yōu)化C/C++編譯器 v20.2.0.LTS
![ARM優(yōu)化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>編譯器 v20.2.0.LTS](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
TMS320C6000優(yōu)化C/C++編譯器v8.3.x
![TMS320<b class='flag-5'>C</b>6000優(yōu)化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>編譯器v8.3.x](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
TMS320C28x優(yōu)化C/C++編譯器v22.6.0.LTS
![TMS320<b class='flag-5'>C</b>28x優(yōu)化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>編譯器v22.6.0.LTS](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
C語(yǔ)言和C++中結(jié)構(gòu)體的區(qū)別
C7000優(yōu)化C/C++編譯器
![<b class='flag-5'>C</b>7000優(yōu)化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>編譯器](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
OpenVINO2024 C++推理使用技巧
C++語(yǔ)言基礎(chǔ)知識(shí)
C++中實(shí)現(xiàn)類(lèi)似instanceof的方法
![<b class='flag-5'>C++</b>中實(shí)現(xiàn)類(lèi)似instanceof的方法](https://file1.elecfans.com/web2/M00/FE/0C/wKgaomaYe1CAQ31QAAAnf0IkoSU605.png)
![](https://file1.elecfans.com/web2/M00/CD/75/wKgaomYgmg2ADWcPAAFu55dKSPQ208.jpg)
C/C++代碼動(dòng)態(tài)測(cè)試工具VectorCAST插樁功能演示#代碼動(dòng)態(tài)測(cè)試 #C++
鴻蒙OS開(kāi)發(fā)實(shí)例:【Native C++】
![鴻蒙OS開(kāi)發(fā)實(shí)例:【Native <b class='flag-5'>C++</b>】](https://file1.elecfans.com/web2/M00/C8/31/wKgZomYZMTCAaDv3AAY5x13C324319.jpg)
使用 MISRA C++:2023? 避免基于范圍的 for 循環(huán)中的錯(cuò)誤
![使用 MISRA <b class='flag-5'>C++</b>:2023? 避免基于范圍的 for 循環(huán)中的錯(cuò)誤](https://file1.elecfans.com/web2/M00/A9/66/wKgZomUl7m-AHJX6AABuJjgxs14678.png)
評(píng)論