C語(yǔ)言 - 概述

各位同學(xué)好振湾,歡迎來(lái)到QingCode 課堂杀迹。本堂課我將會(huì)給大家介紹人工智能時(shí)代

引言

相信大家對(duì)于人工智能都不陌生,我們身邊有哪些人工智能树酪。- 智能手機(jī),掃地機(jī)器人大州,智能家居续语,無(wú)人駕駛等等摧茴。人工智能日漸在我們生活當(dāng)中普及绵载。

標(biāo)志性事件:AlphaGo

世紀(jì)之戰(zhàn),人工智能在圍棋領(lǐng)域戰(zhàn)勝人類

圍棋是古代中國(guó)人發(fā)明的一種棋類游戲娃豹,三千多年來(lái)的實(shí)踐表明,這是世界上最復(fù)雜的運(yùn)算游戲购裙,比國(guó)際象棋的難度要出N個(gè)級(jí)別懂版。因此躏率,計(jì)算機(jī)行業(yè)的科學(xué)家們一直把計(jì)算機(jī)圍棋運(yùn)算打敗人類高手作為頂級(jí)目標(biāo)躯畴,現(xiàn)在這個(gè)目標(biāo)已經(jīng)實(shí)現(xiàn)了。

縱橫十九道 迷煞多少人

AlphaGo是由谷歌旗下DeepMind團(tuán)隊(duì)的戴密斯·哈薩比斯蓬抄、大衛(wèi)·席爾瓦、黃士杰等開(kāi)發(fā)的一款人工智能程序夯到。2016年3月,AlphaGo曾以4:1戰(zhàn)勝韓國(guó)棋手李世石耍贾,成為第一個(gè)擊敗人類職業(yè)圍棋選手的電腦程序阅爽。2016年12月底署惯,AlphaGo身披“Master”馬甲,5天內(nèi)橫掃中日韓棋壇贮缅,最終以60場(chǎng)連勝紀(jì)錄宣布戰(zhàn)勝人類百侧。

AlphaGo和李世石對(duì)弈之前,圍棋的國(guó)手們稱呼它為阿爾法狗能扒,在此之后佣渴,則稱呼它為 “阿老師”赫粥。從狗到老師观话,僅僅隔了幾個(gè)月。

在高看機(jī)器智能的同時(shí)频蛔,人們開(kāi)始對(duì)人工智能感到恐慌,就連霍金這樣的大科學(xué)家也不例外秦叛。

霍金警告人類:人工智能可能毀滅人類晦溪。

斯蒂芬·威廉·霍金(Stephen William Hawking挣跋,1942年1月8日至2018年3月14日)三圆,男,出生于英國(guó)牛津舟肉,英國(guó)劍橋大學(xué)著名物理學(xué)家修噪,現(xiàn)代最偉大的物理學(xué)家之一、20世紀(jì)享有國(guó)際盛譽(yù)的偉人之一路媚。

1979至2009年任盧卡斯數(shù)學(xué)教授,主要研究領(lǐng)域是宇宙論和黑洞整慎,證明了廣義相對(duì)論的奇性定理和黑洞面積定理脏款,提出了黑洞蒸發(fā)理論和無(wú)邊界的霍金宇宙模型裤园,在統(tǒng)一20世紀(jì)物理學(xué)的兩大基礎(chǔ)理論——愛(ài)因斯坦創(chuàng)立的相對(duì)論和普朗克創(chuàng)立的量子力學(xué)方面走出了重要一步撤师。獲得CH(英國(guó)榮譽(yù)勛爵)、CBE(大英帝國(guó)司令勛章)拧揽、FRS(英國(guó)皇家學(xué)會(huì)會(huì)員)、FRSA(英國(guó)皇家藝術(shù)協(xié)會(huì)會(huì)員)等榮譽(yù)强法。 - 《百度百科》

人工智能將快速爆發(fā)万俗,十年后50%的人類工作將被AI取代 - 李開(kāi)復(fù)

李開(kāi)復(fù)曾就讀于卡內(nèi)基梅隆大學(xué)饮怯,獲計(jì)算機(jī)學(xué)博士學(xué)位闰歪,后擔(dān)任副教授。他是一位信息產(chǎn)業(yè)的經(jīng)理人蓖墅、創(chuàng)業(yè)者和電腦科學(xué)的研究者。曾在蘋(píng)果论矾、SGI教翩、微軟和Google等多家IT公司擔(dān)當(dāng)要職贪壳。2009年9月從谷歌離職后創(chuàng)辦創(chuàng)新工場(chǎng)饱亿,并任董事長(zhǎng)兼首席執(zhí)行官。

未來(lái)的時(shí)候闰靴,屬于人工智能的時(shí)代。所有人都面臨這思維方式的升級(jí)

在過(guò)去的十年里蚂且,傳統(tǒng)行業(yè)在和經(jīng)過(guò)IT改造后的行業(yè)競(jìng)爭(zhēng)時(shí)配猫,無(wú)一例外的敗北杏死。08年金融危機(jī)前泵肄,全世界市值前十的公司只有微軟一家是IT企業(yè)捆交。僅僅過(guò)去了十年腐巢,市值前十的公司鐘已經(jīng)有六家是IT企業(yè)了品追。

而與此同時(shí),世界上又有一些受益于這個(gè)時(shí)代的人:比如馬云系忙。

他們和普通人有什么不同呢惠豺?

思維方式不同银还,什么思維方式呢 - 計(jì)算機(jī)思維方式
具體的講呢,是一種適應(yīng)計(jì)算機(jī)的思維方式蛹疯,和人本能的思維方式不同。

例子:

支付寶的被欺詐比例很低热监,比一般的銀行交易捺弦,低兩個(gè)數(shù)量級(jí)孝扛。
這并非是傳統(tǒng)銀行沒(méi)有資源列吼,而在于他們的思維方式落后 - 傳統(tǒng)銀行把每一個(gè)交易,每一個(gè)案子孤立的看待寞钥,雖然符合常人的本能,但是效果有限
而支付寶陌选,從一開(kāi)始就是網(wǎng)狀的理郑,并有意無(wú)意地在網(wǎng)絡(luò)基礎(chǔ)上變得聰明咨油。

我們需要用更好的思維方式來(lái)指導(dǎo)我們您炉,來(lái)適應(yīng)今后的智能時(shí)代。

計(jì)算機(jī)思維

計(jì)算機(jī)思維并不是說(shuō)計(jì)算機(jī)本身是有思維的赚爵,而是因?yàn)檫@種思維是伴隨著計(jì)算機(jī)出現(xiàn)的。簡(jiǎn)單講就是和常人思維完全不同的方式法瑟。比如說(shuō)

大 和 小冀膝。

生活中的我們對(duì)于大數(shù)字的認(rèn)知是無(wú)感的瓢谢。

先定一個(gè)小目標(biāo)畸写,比如說(shuō)一個(gè)億 - 王健林

被全社會(huì)吐槽,因?yàn)楹苌儆腥四芤惠呑訏甑揭粌|人民幣枯芬。

換個(gè)角度來(lái)說(shuō)论笔,人們對(duì)于“大”和“小”這兩個(gè)概念的理解,受限于具體的生活環(huán)境千所。當(dāng)你習(xí)慣了某一個(gè)環(huán)境的度量,很難去理解在量級(jí)上大得多的世界淫痰。對(duì)于大部分人來(lái)說(shuō)最楷,一億等于財(cái)富自由待错,等于無(wú)窮大籽孙。

但是,計(jì)算機(jī)不一樣火俄,因?yàn)椋?jì)算機(jī)從誕生開(kāi)始就是針對(duì)大數(shù)字設(shè)計(jì)的瓜客。

1946年适瓦,人類的第一臺(tái)電子計(jì)算機(jī)誕生時(shí),每秒鐘能進(jìn)行5000次運(yùn)算玻熙。雖然這個(gè)速度只有一臺(tái)iphone計(jì)算速度的一百萬(wàn)分之一,但是已經(jīng)比人快得不得了了疯攒。

1946年2月14日嗦随,世界上第一臺(tái)電腦ENIAC在美國(guó)賓夕法尼亞大學(xué)誕生卸例。第二次世界大戰(zhàn)期間称杨,美國(guó)軍方要求賓州大學(xué)莫奇來(lái)(Mauchly)博士和他的學(xué)生愛(ài)克特(Eckert)設(shè)計(jì)以真空管取代繼電器的"電子化"電腦——ENIAC(Electronic Numerical Integrator and Calculator), 電子數(shù)字積分器與計(jì)算 器)姑原,目的是用來(lái)計(jì)算炮彈彈道。

這部機(jī)器使用了18800個(gè)真空管呜舒,長(zhǎng)50英尺锭汛,寬30英尺袭蝗,占地1500平方英尺唤殴,重達(dá)30噸(大約是一間半的教室大到腥,六只大象重)朵逝。它的計(jì)算速度快,每秒可從事5000次的加法運(yùn)算乡范,運(yùn)作了九年之久啤咽。吃電很兇,據(jù)傳ENIAC每次一開(kāi)機(jī)渠脉,整個(gè)費(fèi)城西區(qū)的電燈都為之黯然失色。

另外芋膘,真空管的損耗率相當(dāng)高鳞青,幾乎每15分鐘就可能燒掉一支真空管,操作人員須花15分鐘以上的時(shí)間才能找出壞掉的管子臂拓,使用上極不方便。曾有人調(diào)侃道:“只要那部機(jī)器可以連續(xù)運(yùn)轉(zhuǎn)五天潜腻,而沒(méi)有一只真空管燒掉埃儿,發(fā)明人就要額手稱慶了”融涣。

由于一開(kāi)始就是針對(duì)于海量的數(shù)字設(shè)計(jì)的,因此計(jì)算機(jī)思維和人的思維是不同的精钮。比如說(shuō):我們認(rèn)為圍棋的變化數(shù)量是數(shù)不清的威鹿。因?yàn)閿?shù)量太大轨香,以至于很多下圍棋的人也說(shuō)不清楚到底有多大忽你。

我們用數(shù)學(xué)分析的方法算一下,圍棋有多少變化科雳。

棋盤(pán)上每一個(gè)點(diǎn) 有有黑子,白子和空位三種下法脓杉,而棋盤(pán)一共有361個(gè)交叉點(diǎn)糟秘。因此圍棋最多可以有 3^361 大概為 2 * 10^172鐘情況球散。大約是 2的后面跟了172個(gè)0尿赚。

這個(gè)數(shù)字到底有多大呢。

整個(gè)宇宙中蕉堰,有10^ 80 ~ 10 ^82 個(gè)基本粒子(質(zhì)子,中字或者電子等等)

這么多的變化對(duì)于人類來(lái)說(shuō)屋讶,基本上就是無(wú)窮無(wú)盡的冰寻。于是人類不把下圍棋當(dāng)做一種計(jì)算問(wèn)題皿渗,而當(dāng)成一種文化斩芭,更具體的來(lái)說(shuō)是:棋道没卸。

對(duì)于計(jì)算機(jī)而言秒旋,圍棋再?gòu)?fù)雜约计,也是一個(gè)有限的問(wèn)題。我們認(rèn)為他不可計(jì)算迁筛,是因?yàn)槿祟惸X子的計(jì)算能力是有極限的,缺乏計(jì)算復(fù)雜問(wèn)題的思路细卧。但是在計(jì)算機(jī)看來(lái)尉桩,這個(gè)問(wèn)題是可以計(jì)算的。

可以講

認(rèn)知決定了思維方式蜘犁,當(dāng)我們數(shù)不清的時(shí)候,我們就發(fā)明了“圍棋文化”這種思維方式止邮。

相比于計(jì)算機(jī)这橙,人類對(duì)數(shù)字的認(rèn)知也受限于我們作為作為生物進(jìn)化的速度导披,這是人的思維和計(jì)算機(jī)的思維的另一個(gè)不同之處

舉例:

世界上最早的農(nóng)業(yè)始于一萬(wàn)年前屈扎,人類大約那個(gè)時(shí)代開(kāi)始識(shí)數(shù),人類最早的計(jì)數(shù)工具也開(kāi)始于那個(gè)年代撩匕。可以講從認(rèn)識(shí) 一止毕,到認(rèn)識(shí)一個(gè)億模蜡,經(jīng)歷了大約10000年的時(shí)間扁凛。平均每十年進(jìn)步千分之八忍疾。

那么計(jì)算機(jī)的進(jìn)步速度有多快呢。

摩爾定律:計(jì)算機(jī)每18個(gè)月性能翻一番

大約是每五年漲10倍令漂,或者說(shuō)每十年進(jìn)步100倍。

我們看一下計(jì)算機(jī)處理大數(shù)據(jù)的一個(gè)小案例叠必。

例子:斐波那契數(shù)列

斐波那契數(shù)列(Fibonacci sequence)荚孵,又稱黃金分割數(shù)列、因數(shù)學(xué)家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入收叶,故又稱為“兔子數(shù)列”,指的是這樣一個(gè)數(shù)列:1共苛、1判没、2、3澄峰、5嫉沽、8、13绸硕、21、34魂毁、……在數(shù)學(xué)上玻佩,斐波納契數(shù)列以如下被以遞推的方法定義:F(1)=1席楚,F(xiàn)(2)=1, F(n)=F(n-1)+F(n-2)(n>=3咬崔,n∈N*)在現(xiàn)代物理、準(zhǔn)晶體結(jié)構(gòu)烦秩、化學(xué)等領(lǐng)域,斐波納契數(shù)列都有直接的應(yīng)用闻镶,為此甚脉,美國(guó)數(shù)學(xué)會(huì)從1963年起出版了以《斐波納契數(shù)列季刊》為名的一份數(shù)學(xué)雜志,用于專門(mén)刊載這方面的研究成果。

// 代碼待定

工程思維

// 待定

計(jì)算機(jī)發(fā)展歷史

說(shuō)到計(jì)算機(jī)狡耻,我們不能不提計(jì)算機(jī)之父:圖靈墩剖。

艾倫·麥席森·圖靈(Alan Mathison Turing,1912年6月23日-1954年6月7日)岭皂,英國(guó)數(shù)學(xué)家、邏輯學(xué)家沼头,被稱為計(jì)算機(jī)科學(xué)之父爷绘,人工智能之父进倍。

圖靈博士被認(rèn)為是神一樣的人土至。在20世紀(jì),全世界智力上可以和愛(ài)因斯坦平起平坐的人恐怕只有圖靈 和 馮 . 諾依曼了猾昆。

圖靈三個(gè)問(wèn)題

第一個(gè)問(wèn)題,世界上是否所有數(shù)學(xué)問(wèn)題都有明確的答案垂蜗?

第二個(gè)問(wèn)題楷扬,如果有明確的答案,是否可以通過(guò)有限步驟的計(jì)算得到答案烘苹?

第三個(gè)問(wèn)題才是躲株,對(duì)于那些有可能在有限步驟計(jì)算出來(lái)的數(shù)學(xué)問(wèn)題,能否有一種假象的機(jī)械镣衡,讓它不斷的運(yùn)動(dòng),最后捆探,當(dāng)機(jī)器停下來(lái)的時(shí)候然爆,那個(gè)數(shù)學(xué)問(wèn)題就解決了黍图?

而圖靈設(shè)計(jì)的這種方法曾雕,是一個(gè)數(shù)學(xué)模型,后人稱它為圖靈機(jī)助被。今天所有的計(jì)算機(jī),包括全世界正在設(shè)計(jì)的新的計(jì)算機(jī)揩环,從解決問(wèn)題的能力來(lái)講搔弄,都沒(méi)有超出圖靈機(jī)的范疇。

卡片時(shí)期

19世紀(jì)的雅卡爾提花織布機(jī)
1725年顾犹,法國(guó)紡織工人魯修為便于轉(zhuǎn)織圖樣,在織布機(jī)套上穿孔紙帶褒墨,他的合作伙伴則在1726年著手改良設(shè)計(jì)炫刷,將紙帶換成相互串連的穿孔卡片郁妈,以此達(dá)到僅需手工進(jìn)料的半自動(dòng)化生產(chǎn)浑玛。1801年,法國(guó)人雅卡爾發(fā)明提花織布機(jī)噩咪,利用打孔卡控制織花圖樣,與前者不同的是胃碾,這部織布機(jī)變更連串的卡片時(shí)涨享,無(wú)需更動(dòng)機(jī)械設(shè)計(jì),此乃可編程化機(jī)器的里程碑灰伟。

程式化時(shí)期

可編程化是通用計(jì)算機(jī)的重要定義,意即只要變更指令的儲(chǔ)存序列,通用計(jì)算機(jī)就能模擬其它形式的計(jì)算機(jī)栏账。

1823年,英國(guó)數(shù)學(xué)家巴貝奇在政府的支持下挡爵,開(kāi)始建造以蒸汽引擎驅(qū)動(dòng)的差分機(jī)竖般,用來(lái)比較數(shù)字間的差異,經(jīng)歷10年未能竟功茶鹃,巴貝奇遂轉(zhuǎn)而研究設(shè)計(jì)得更為完整,直接利用打孔卡輸入和儲(chǔ)存資料的分析機(jī)闭翩,可惜最后巴貝奇窮其畢生精力都未能造出任一完整的差分機(jī)或分析機(jī)挣郭。

桌上型時(shí)期

1900年代初期疗韵,機(jī)械式計(jì)算器兑障、收銀機(jī)、記賬機(jī)等都被重新設(shè)計(jì)蕉汪,改用電動(dòng)馬達(dá),配合變檔齒輪使其更加靈活者疤。1930年代福澡,四則運(yùn)算已經(jīng)是桌上型機(jī)械計(jì)算器的基本功能,當(dāng)時(shí)電腦的英文單字“Computer”指的是一群以操作數(shù)學(xué)計(jì)算器為業(yè)的“計(jì)算師”革砸。在曼哈頓計(jì)劃時(shí)期,許多精通微分方程式的女性數(shù)學(xué)家都擠在房間里當(dāng)起計(jì)算師報(bào)效祖國(guó)糯累,后來(lái)的諾貝爾獎(jiǎng)得主物理學(xué)家費(fèi)曼先生還當(dāng)過(guò)計(jì)算師主管业岁。即使是名聞遐邇的波蘭數(shù)學(xué)家烏拉姆寇蚊,在戰(zhàn)后也曾被利用來(lái)求取氫彈的數(shù)學(xué)似近值。

模擬時(shí)期編輯

1930年棍好,現(xiàn)代電腦之父萬(wàn)尼瓦爾·布希發(fā)明微分分析器,模擬計(jì)算機(jī)科技至此達(dá)到頂峰借笙,大部分的零件都已經(jīng)被制造出來(lái)扒怖,終于,賓夕法尼亞大學(xué)的摩爾電機(jī)工程研究所打造出最具影響力的數(shù)字電子計(jì)算機(jī)──電子數(shù)值積分計(jì)算器(埃尼阿克)业稼。埃尼阿克的誕生終結(jié)了大部分模擬計(jì)算機(jī)的生路,不過(guò)從1950年代到1960年代,由數(shù)字電子學(xué)控制的混合型模擬計(jì)算機(jī)依然活躍俯邓,之后模擬計(jì)算機(jī)就應(yīng)用在部分專業(yè)用途上骡楼。

早期數(shù)字電腦

1930年代后期到1940年代稽鞭,受到二次大戰(zhàn)影響鸟整,此一時(shí)期被認(rèn)為是計(jì)算機(jī)發(fā)展史中的混亂時(shí)期,戰(zhàn)爭(zhēng)開(kāi)啟了現(xiàn)代電腦的時(shí)代朦蕴,電子電路、繼電器吩抓、電容及真空管相繼登場(chǎng)涉茧,取代機(jī)械器件,就連類比計(jì)算器也被數(shù)字計(jì)算器所代替伴栓。阿塔那索夫貝理電腦(ABC)、Z3電腦蚓胸、巨像電腦和埃尼阿克也在手工精心打造下誕生挣饥,使用包含繼電器或真空管的電路沛膳,以打孔卡或打孔帶作為輸入和主要(非短期)儲(chǔ)存媒介扔枫。
代表是 : 圖靈機(jī)

why C

對(duì)于大部分程序員,C語(yǔ)言是學(xué)習(xí)編程的第一門(mén)語(yǔ)言锹安,很少有不了解C的程序員。

C語(yǔ)言除了能讓你了解編程的相關(guān)概念叹哭,帶你走進(jìn)編程的大門(mén)忍宋,還能讓你明白程序的運(yùn)行原理,比如风罩,計(jì)算機(jī)的各個(gè)部件是如何交互的,程序在內(nèi)存中是一種怎樣的狀態(tài)超升,操作系統(tǒng)和用戶程序之間有著怎樣的“愛(ài)恨情仇”入宦,這些底層知識(shí)決定了你的發(fā)展高度,也決定了你的職業(yè)生涯乾闰。

如果你希望成為出類拔萃的人才,而不僅僅是碼農(nóng)盈滴,這么這些知識(shí)就是不可逾越的涯肩。也只有學(xué)習(xí)C語(yǔ)言,才能更好地了解它們病苗。有了足夠的基礎(chǔ)疗垛,以后學(xué)習(xí)其他語(yǔ)言,會(huì)觸類旁通继谚,很快上手,7 天了解一門(mén)新語(yǔ)言不是神話阵幸。

C語(yǔ)言概念少花履,詞匯少挚赊,包含了基本的編程元素诡壁,后來(lái)的很多語(yǔ)言(C++、Java等)都參考了C語(yǔ)言荠割,說(shuō)C語(yǔ)言是現(xiàn)代編程語(yǔ)言的開(kāi)山鼻祖毫不夸張,它改變了編程世界蔑鹦。

計(jì)算機(jī)常識(shí)

在學(xué)習(xí)C語(yǔ)言之前夺克,先要了解一些計(jì)算機(jī)常識(shí)。

計(jì)算機(jī)只能識(shí)別0 和 1

  • 大家都知道嚎朽,計(jì)算機(jī)要通電才能工作,說(shuō)白了哟忍,它跟電視狡门、洗衣機(jī)一樣,都是電器其馏。電器都有個(gè)共同的能力:懂得判斷通電還是斷電,通電就能工作爆安,斷電就停止工作叛复。因此扔仓,從根本上講致扯,計(jì)算機(jī)只能識(shí)別電信號(hào):高電平信號(hào)(通電)、低電平信號(hào)(斷電)当辐,它只知道某個(gè)開(kāi)關(guān)是通電還是斷電鲤看。我們用1代表高電平缘揪,0代表低電平。
  • 也就說(shuō),計(jì)算機(jī)只能識(shí)別0和1找筝。

二進(jìn)制

因?yàn)橛?jì)算機(jī)只能識(shí)別0和1,因此計(jì)算機(jī)所能識(shí)別的指令和數(shù)據(jù)都是用二進(jìn)制數(shù)(0和1)來(lái)表示的袖裕。所謂二進(jìn)制曹抬,就是用0和1來(lái)表示所有的數(shù)。不過(guò)我們?nèi)粘I钪凶畛S玫氖鞘M(jìn)制谤民,用0~9來(lái)表示所有的數(shù)。

二進(jìn)制指令

給計(jì)算機(jī)輸入一些指令疾宏,它就能執(zhí)行相應(yīng)的操作张足,而計(jì)算機(jī)只能識(shí)別由0和1組成的指令坎藐。在計(jì)算機(jī)發(fā)展初期为牍,計(jì)算機(jī)的指令長(zhǎng)度為16,即以16個(gè)二進(jìn)制數(shù)(0或1)組成一條指令岩馍,例如,用1011011000000000這條指令蛀恩,是讓計(jì)算機(jī)進(jìn)行一次加法運(yùn)算疫铜。因此,如果要想計(jì)算機(jī)執(zhí)行一系列的操作赦肋,就必須編寫(xiě)許多條由0和1組成的指令,可以想象的到佃乘,這個(gè)工作量是如此巨大囱井。

二進(jìn)制數(shù)據(jù)

平時(shí)我們?cè)谟?jì)算機(jī)中存儲(chǔ)的一些數(shù)據(jù),比如文檔庞呕、照片、視頻等程帕,都是以0和1的形式存儲(chǔ)的住练。只不過(guò)計(jì)算機(jī)解析了這一大堆的0和1愁拭,以圖形界面的形式將數(shù)據(jù)展示在我們眼前讲逛。

程序設(shè)計(jì)語(yǔ)言發(fā)展史

我們可以利用程序設(shè)計(jì)語(yǔ)言來(lái)編寫(xiě)程序,再將編好的程序運(yùn)行到計(jì)算機(jī)上岭埠,計(jì)算機(jī)就能夠按照程序中所說(shuō)的去做蔚鸥。從計(jì)算機(jī)誕生至今,程序設(shè)計(jì)語(yǔ)言大致經(jīng)歷了3個(gè)發(fā)展階段:機(jī)器語(yǔ)言许赃、匯編語(yǔ)言止喷、高級(jí)語(yǔ)言混聊。其中弹谁,C語(yǔ)言屬于高級(jí)語(yǔ)言。

機(jī)器語(yǔ)言

什么是機(jī)器語(yǔ)言

在計(jì)算器誕生初期句喜, 所有的計(jì)算機(jī)程序都是直接用計(jì)算機(jī)能識(shí)別的二進(jìn)制指令來(lái)編寫(xiě)的,也就是說(shuō)所有的代碼里面只有0和1藤滥。這種程序設(shè)計(jì)語(yǔ)言就是“機(jī)器語(yǔ)言”鳖粟。這些由0和1組成的二進(jìn)制指令,又叫做“機(jī)器指令”

優(yōu)點(diǎn)

  • 由于機(jī)器語(yǔ)言編寫(xiě)出來(lái)的代碼是能被計(jì)算機(jī)直接識(shí)別的拙绊,因此機(jī)器語(yǔ)言是直接對(duì)硬件產(chǎn)生作用的,程序的執(zhí)行效率非常高标沪。
  • 機(jī)器語(yǔ)言能直接訪問(wèn)榄攀、控制計(jì)算機(jī)的各種硬件設(shè)備,如磁盤(pán)檩赢、存儲(chǔ)器、CPU违寞、I/O端口等贞瞒。

缺點(diǎn)

  • 用機(jī)器語(yǔ)言編寫(xiě)程序趁曼,編程人員要首先熟記所用計(jì)算機(jī)的全部指令和指令的涵義军浆,指令又多又難記

  • 編出的程序全是些0和1的指令代碼,可讀性差挡闰,還容易出錯(cuò)。

  • 由于機(jī)器語(yǔ)言是直接對(duì)硬件產(chǎn)生作用的摄悯,對(duì)硬件的依賴性很強(qiáng)赞季,因此不同型號(hào)計(jì)算機(jī)的機(jī)器語(yǔ)言又不一樣。也就是說(shuō)奢驯,如果2臺(tái)不同型號(hào)的機(jī)器想實(shí)現(xiàn)一樣的功能,需要編寫(xiě)2套完全不同的代碼瘪阁。

可以看出典蜕,機(jī)器語(yǔ)言很難掌握和推廣断盛,現(xiàn)在除了計(jì)算機(jī)生產(chǎn)廠家的專業(yè)人員外愉舔,絕大多數(shù)的程序員已經(jīng)不再去學(xué)習(xí)機(jī)器語(yǔ)言了。

匯編語(yǔ)言

什么是匯編語(yǔ)言

  • 由于機(jī)器語(yǔ)言的種種弊端伙菜,嚴(yán)重影響開(kāi)發(fā)效率轩缤,后面就出現(xiàn)了匯編語(yǔ)言贩绕。匯編語(yǔ)言其實(shí)就是符號(hào)化的機(jī)器語(yǔ)言火的,它用一個(gè)符號(hào)(英文單詞、數(shù)字)來(lái)代表一條機(jī)器指令淑倾。比如,在機(jī)器語(yǔ)言中娇哆,用1011011000000000這條指令湃累,是讓計(jì)算機(jī)進(jìn)行一次加法運(yùn)算;而在匯編語(yǔ)言中治力,用英文單詞“ADD”就可以表示加法運(yùn)算。一個(gè)有意義的英文單詞勃黍,很明顯比一串又臭又長(zhǎng)的二進(jìn)制指令宵统,直觀好記多了。
  • 由于計(jì)算機(jī)只能識(shí)別0和1马澈,用匯編語(yǔ)言編寫(xiě)的代碼是不能被計(jì)算機(jī)所識(shí)別的,像剛才的“ADD”弄息,計(jì)算機(jī)肯定不知道是什么意思痊班。因此疑枯,用匯編語(yǔ)言編寫(xiě)的代碼需要翻譯成二進(jìn)制指令后辩块,才能被計(jì)算機(jī)識(shí)別。這個(gè)翻譯的工作交給“編譯器”去做荆永。

優(yōu)點(diǎn)

  • 對(duì)比機(jī)器語(yǔ)言,匯編語(yǔ)言的代碼可讀性好
  • 匯編語(yǔ)言能像機(jī)器語(yǔ)言一樣具钥,可以直接訪問(wèn)豆村、控制計(jì)算機(jī)的各種硬件設(shè)備,如磁盤(pán)骂删、存儲(chǔ)器四啰、CPU、I/O端口等粗恢。
  • 目標(biāo)代碼簡(jiǎn)短(目標(biāo)代碼就是經(jīng)編譯器翻譯過(guò)后的二進(jìn)制代碼)柑晒,占用內(nèi)存少眷射,執(zhí)行速度快匙赞。

缺點(diǎn)

  • 匯編語(yǔ)言是面向機(jī)器的,通常是為特定的計(jì)算機(jī)或系列計(jì)算機(jī)專門(mén)設(shè)計(jì)的妖碉。因此,不同的機(jī)器有不同的匯編語(yǔ)言語(yǔ)法和編譯器欧宜,代碼缺乏可移植性坐榆,也就是說(shuō),一個(gè)程序只能在一種機(jī)器上運(yùn)行冗茸,換到其他機(jī)器上就不能運(yùn)行
  • 匯編語(yǔ)言的符號(hào)非常多、難記蚀狰,即使是完成簡(jiǎn)單的功能也需要大量的匯編語(yǔ)言代碼愉昆,很容易產(chǎn)生BUG,難于調(diào)試
  • 使用匯編語(yǔ)言必須對(duì)硬件非常了解跛溉,開(kāi)發(fā)效率很低,周期長(zhǎng)且單調(diào)

高級(jí)語(yǔ)言

由于匯編語(yǔ)言依賴于硬件扮授,代碼可移植性差芳室,符號(hào)又多又難記刹勃,于是人類就發(fā)明了非常接近自然語(yǔ)言的高級(jí)語(yǔ)言堪侯。后面要學(xué)習(xí)的C語(yǔ)言就是高級(jí)語(yǔ)言。

優(yōu)點(diǎn)

  • 簡(jiǎn)單荔仁、易用、易于理解乏梁,語(yǔ)法和結(jié)構(gòu)類似于普通英文次洼,且遠(yuǎn)離對(duì)硬件的直接操作,使得一般人經(jīng)過(guò)學(xué)習(xí)之后都可以編程遇骑,而不用太熟悉硬件知識(shí)
  • 寫(xiě)出來(lái)的程序更加簡(jiǎn)潔。比如要計(jì)算2個(gè)數(shù)的和落萎,在高級(jí)語(yǔ)言中可以寫(xiě)得非常簡(jiǎn)潔:d = a + b;亥啦。但是在機(jī)器語(yǔ)言和匯編語(yǔ)言中炭剪,就需要幾條甚至幾十條指令翔脱,而且不同機(jī)器還要編寫(xiě)不同的指令代碼
  • 用高級(jí)語(yǔ)言編寫(xiě)的同一個(gè)程序還可以在不同的機(jī)器上運(yùn)行奴拦,具有可移植性

C語(yǔ)言簡(jiǎn)史

  • C語(yǔ)言于1972年發(fā)明,首次使用是用于重寫(xiě)UINX操作系統(tǒng)(UNIX以前主要是用匯編語(yǔ)言寫(xiě)的届吁,它奠定了操作系統(tǒng)的基礎(chǔ))
  • 隨著UNIX操作系統(tǒng)的成功,C語(yǔ)言也得到了大幅度地推廣瓷产,被先后使用到大、中枚驻、小濒旦、微型主機(jī)上再登,至今還是世界上最流行尔邓、使用最廣泛的高級(jí)程序設(shè)計(jì)語(yǔ)言之一
  • C語(yǔ)言是一門(mén)面向過(guò)程的語(yǔ)言,非面向?qū)ο蟮恼Z(yǔ)言锉矢。(究竟什么是面向過(guò)程、面向?qū)ο蠊了穑瑫簳r(shí)不用去理解灯节,只需要知道C語(yǔ)言是面向過(guò)程就Ok了)

C語(yǔ)言特點(diǎn)

豐富的運(yùn)算符

計(jì)算機(jī)的基本功能就是計(jì)算,因此一門(mén)程序設(shè)計(jì)語(yǔ)言的計(jì)算能力是非常重要的绵估。C語(yǔ)言提供了34種運(yùn)算符,計(jì)算類型極其豐富国裳,其中包括了最基本的加減乘除運(yùn)算形入。

豐富的數(shù)據(jù)類型

  • C語(yǔ)言的生命力之所以如何強(qiáng)大,很大一部分是因?yàn)樗鼡碛胸S富的數(shù)據(jù)類型亿遂。
  • 正因?yàn)镃語(yǔ)言數(shù)據(jù)類型豐富,運(yùn)算能力極強(qiáng)渺杉,因此很多數(shù)據(jù)庫(kù)都是用C語(yǔ)言編寫(xiě)的蛇数,比如DB2、Oracle等苞慢。

直接操作硬件

跟匯編語(yǔ)言一樣,C語(yǔ)言可以直接操作硬件英妓,允許直接對(duì)位挽放、字節(jié)、地址進(jìn)行操作(位辑畦、字節(jié)吗蚌、地址是計(jì)算機(jī)最基本的工作單元),可以說(shuō)幾乎沒(méi)有C語(yǔ)言做不了的事情纯出。

高效率的目標(biāo)代碼

目標(biāo)代碼,就是經(jīng)編譯器翻譯后的二進(jìn)制代碼暂筝。C語(yǔ)言的目標(biāo)代碼執(zhí)行效率非常高箩言。

可移植性好

在一個(gè)環(huán)境上用C語(yǔ)言編寫(xiě)的程序,不改動(dòng)或稍加改動(dòng)焕襟,就可移植到另一個(gè)完全不同的環(huán)境中運(yùn)行。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鸵赖,一起剝皮案震驚了整個(gè)濱河市务漩,隨后出現(xiàn)的幾起案子它褪,更是在濱河造成了極大的恐慌饵骨,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茫打,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡包吝,警方通過(guò)查閱死者的電腦和手機(jī)饼煞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)诗越,“玉大人,你說(shuō)我怎么就攤上這事嚷狞】榇伲” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵竭翠,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我薇搁,道長(zhǎng)斋扰,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任传货,我火速辦了婚禮屎鳍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘问裕。我一直安慰自己,他們只是感情好粮宛,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布窥淆。 她就那樣靜靜地躺著,像睡著了一般巍杈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上筷畦,一...
    開(kāi)封第一講書(shū)人閱讀 50,050評(píng)論 1 291
  • 那天眷昆,我揣著相機(jī)與錄音,去河邊找鬼。 笑死作媚,一個(gè)胖子當(dāng)著我的面吹牛攘滩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播纸泡,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼女揭!你這毒婦竟也來(lái)了蚤假?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤吧兔,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后境蔼,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體灶平,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年逢享,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吴藻。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瞒爬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出侧但,到底是詐尸還是另有隱情矢空,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布俊犯,位于F島的核電站,受9級(jí)特大地震影響燕侠,放射性物質(zhì)發(fā)生泄漏者祖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一绢彤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧茫舶,春花似錦械巡、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)疹启。三九已至古程,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間喊崖,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工荤懂, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留茁裙,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓节仿,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親廊宪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子查近,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • AMQS閱讀 154評(píng)論 0 0
  • 「你心里到底有沒(méi)有我?到底把我當(dāng)成什么了册烈?」她真的超級(jí)超級(jí)傷心戈泼。 雖然名義上是男女朋友,但是她老覺(jué)得自己在他心中其...
    garro閱讀 375評(píng)論 0 0
  • 那陣式比起過(guò)年過(guò)節(jié)還要熱鬧大猛,鬧得街坊四鄰紛紛圍觀扭倾。我看到了紙?jiān)能囻R隊(duì),都跟真人般大小挽绩,花花綠綠的非常漂亮膛壹。送葬的...
    樹(shù)偉閱讀 407評(píng)論 20 24
  • 文/夢(mèng)夢(mèng)cute萌 最近有位媽媽清晨的時(shí)候微信我,說(shuō)她家小孩偷她包里的錢(qián)了唠亚,她不知道該怎么辦。我看了時(shí)間灶搜,7:30...
    夢(mèng)夢(mèng)cute萌閱讀 700評(píng)論 0 2
  • 周末陪娃祟蚀,去了洼里山居樓,喜歡這種原汁原味的山野氣息割卖,就是現(xiàn)在的商業(yè)味越來(lái)越濃了前酿。 這兩天下午總昏昏沉沉鹏溯,但又睡不...
    王悅yue閱讀 160評(píng)論 0 4