版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
傳智播客C語言入門教程(2)講師:尹成QQ:77025077博客:/yincheng01微博:/yincheng8848Mail:yinc13@網(wǎng)址:C語言C++語言傳智播客高薪就業(yè)傳智播客C語言入門教程(2)講師:尹成C語言C++語言2.安裝VisualStudio20103.VisualStudio開發(fā)環(huán)境概述4.跟我一起實(shí)現(xiàn)HelloWorld5.C語言編譯,鏈接,生成的過程傳智播客C語言入門教程(2)大綱1.C語言開發(fā)環(huán)境概述C語言課程概述6.初學(xué)者的疑難解答2.安裝VisualStudio2.1.1VC++,C++,C,TC:跳出這團(tuán)漿糊——認(rèn)識(shí)開發(fā)環(huán)境和語言的區(qū)別VC++,一般是指微軟公司的VisualStudio開發(fā)套件中的VisualC++開發(fā)環(huán)境。所謂開發(fā)環(huán)境,是集成了源代碼編輯,編譯,鏈接,調(diào)試等功能的一個(gè)綜合程序。VisualC++C++,是另外一門有些類似C語言語法的面向?qū)ο蟮母呒?jí)語言。雖然C語言不加修改就可以被C++編譯器編譯,但C和C++是完全不同思想的兩門語言,不應(yīng)將C++看作是C的超集。.C++C就是指C語言了。CTC是Borland公司開發(fā)的C編程環(huán)境,是TrobeC的簡(jiǎn)稱。一般學(xué)習(xí)C語言,都使用該編程環(huán)境,只是這已經(jīng)算是老古董了,對(duì)于現(xiàn)在的操作系統(tǒng),使用TC2來編寫程序,已經(jīng)很不合時(shí)宜了TurboC/C++2.1.1VC++,C++,C,T2.1.2IDE-VisualStudio2010簡(jiǎn)介安裝簡(jiǎn)單,支持主流操作系統(tǒng)XP,Win7,Win8中文版全中文界面,幫助也是中文,學(xué)習(xí)簡(jiǎn)單代碼智能提示,功能強(qiáng)大VisualStudio20102.1.2IDE-VisualSt2.2.1VS2010下載百度網(wǎng)盤下載地址:/share/link?shareid=16864835&uk=4245461507下載該文件:把文件下載好以后打開,選擇用360壓縮打開,安裝之前請(qǐng)關(guān)閉殺毒軟件,360安全衛(wèi)士,避免安裝失敗2.2.1VS2010下載百度網(wǎng)2.2.2VS2010打開選中setup.exe選擇解壓縮打開2.2.2VS2010打開選中2.2.3初始化開始安裝點(diǎn)擊安裝MicrosoftVisualStudio20102.2.3初始化開始安裝點(diǎn)擊安裝M2.2.4VS2010等待加載等待它漫長(zhǎng)的加載2.2.4VS2010等待加載等待2.2.5加載完成下一步點(diǎn)擊下一步2.2.5加載完成下一步點(diǎn)擊下一步2.2.6同意相關(guān)條款選擇同意條款,點(diǎn)擊“下一步”按鈕2.2.6同意相關(guān)條款選擇同意條款2.2.7定制安裝選項(xiàng)硬盤夠大的同學(xué)選擇完全,不夠的同學(xué)選擇自定義,同時(shí)可以定制軟件安裝路徑2.2.7定制安裝選項(xiàng)硬盤夠大的同2.2.8定制安裝的功能在這里可以定制安裝哪些,不安裝哪些,必須勾選VisualC++2.2.8定制安裝的功能在這里可以2.2.9開始安裝開始安裝,忍耐,等待2.2.9開始安裝開始安裝,忍耐2.2.10處理重啟如果提示重啟,則重啟2.2.10處理重啟如果提示重啟,2.2.11繼續(xù)安裝繼續(xù)安裝2.2.11繼續(xù)安裝繼續(xù)安裝2.2.12安裝完成大功告成,可以繼續(xù)安裝文檔,可裝可不裝,點(diǎn)擊安裝文檔選擇相關(guān)文檔安裝即可2.2.12安裝完成大功告成,可以2.2.13VS2010啟動(dòng)畫面2.2.13VS2010啟動(dòng)畫面2.3VisualStudo2010開發(fā)環(huán)境2.3VisualStudo2012.3.1VS2010新建項(xiàng)目2.3.1VS2010新建項(xiàng)目2.3.2VS2010項(xiàng)目窗口2.3.2VS2010項(xiàng)目窗口2.4HelloWorld案例的代碼項(xiàng)目名稱不能包含任何非字母數(shù)字字符(包括“.”和“..”),并且它們的長(zhǎng)度不能超過256個(gè)字符#include<stdio.h>/*包含該頭文件的目的是使用了函數(shù)printf*/
/*空行,主要是為了分隔,編譯器忽略。*/voidmain(void)
/*主函數(shù),入口點(diǎn)*/{
/*函數(shù)開始*/
printf("\nHelloWorld!");
/*打印字符串*/}2.4HelloWorld案例的代2.4.1HelloWorld代碼概貌很短,簡(jiǎn)單幾行文字,就創(chuàng)建了一個(gè)可以運(yùn)行的程序,非常神奇。代碼雖小,但五臟俱全,綜觀整個(gè)代碼,可以總結(jié)如下特點(diǎn):(1)由單詞,符號(hào),空白組成。單詞以英語單詞為主,有的單詞就是純正的英語單詞,如main、void、include;有的不是,如getchar、pringf。單詞一般都小寫。代碼中的標(biāo)點(diǎn)符號(hào)并不是隨意輸入的。每個(gè)符號(hào)在C中都有自己的含義。中出現(xiàn)的符號(hào),有“#”、“<>”、“()”、“\”、“/*”、“*/”、“{}”、“;”、“””。單詞與單詞之間用空白分隔,空白可以是空格,也可以是Tab制表符??瞻椎膫€(gè)數(shù)沒有限制。(2)如同閱讀小說一樣,C源代碼也是從上往下閱讀。也就是C源代碼的先后順序是有講究的。行與行之間也可以有空白行。空白行數(shù)也是沒有限制的。有的行頂格書寫,有的行卻又后退了幾個(gè)空格,這種后退,稱為“縮進(jìn)”。如何縮進(jìn),這些也都是有講究的。(3)并沒有專門的標(biāo)志表示文件從哪里起始,也沒有標(biāo)志表示文件到哪里結(jié)束。從第一個(gè)字符開始,文件就開始了,到最后一個(gè)字符結(jié)束,文件就結(jié)束了。2.4.1HelloWorld代碼2.4.2HelloWorld代碼解析先看下面的代碼段,這段代碼是從中截取過來的,為了學(xué)習(xí)方便,去掉了注釋部分:voidmain(void) {printf("\nHelloWorld!");getchar(); }voidmain(void){…}這一段是在定義C程序的主函數(shù)。函數(shù)是可以完成一定功能的子程序。Main函數(shù)是C語言程序的起始執(zhí)行點(diǎn)。每一個(gè)C程序必須有且僅有一個(gè)main函數(shù),它是由程序員提供的。2.4.2HelloWorld代碼2.4.3注釋-程序員的解釋出現(xiàn)最多的是“/*”和“*/”包裹起來的中文語句,這些是注釋。注釋是幫助程序員閱讀源代碼和理解源代碼的。編譯器在編譯源代碼的時(shí)候,在目標(biāo)代碼生成以前,會(huì)把注釋剔除掉然后再進(jìn)行編譯,當(dāng)然編譯器是不會(huì)修改源文件的,這一切是在內(nèi)存中完成。由于對(duì)于注釋部分忽略不處理,就如同沒有這些字符一樣,所以注釋不會(huì)增加編譯后的程序的可執(zhí)行代碼長(zhǎng)度,對(duì)程序運(yùn)行不起任何作用。注釋分為兩種//,/**/2.4.3注釋-程序員的解釋出現(xiàn)最2.4.4屏幕上顯示文字-函數(shù)調(diào)用Main函數(shù)體中:printf("\nHelloWorld!");這行是調(diào)用了C語言提供的打印數(shù)輸出函數(shù),該函數(shù)的名字是“printf”,小括號(hào)內(nèi)雙引號(hào)括起來的文字是printf函數(shù)的參數(shù)。該函數(shù)的功能是把小括號(hào)里的文字原樣打印在屏幕上。也就是說雙引號(hào)里的內(nèi)容變化,則打印在屏幕上的文字也會(huì)變化。請(qǐng)讀者自己試驗(yàn)修改雙引號(hào)里的文字。說明:“\n”在這里有特殊的含義,讀者可以發(fā)現(xiàn)“\n”并沒有在屏幕中打印出來。“\n”中的“\”是轉(zhuǎn)義字符,表示其后面緊跟的字符有專門的意思?!癨n”表示將光標(biāo)移到第二行第一格。也就是回車換行的意思。2.4.4屏幕上顯示文字-函數(shù)調(diào)用2.4.5#include有什么用源代碼最終是需要被編譯器處理的。編譯器編譯的過程比較復(fù)雜,但一般需要經(jīng)歷好幾步。第一步是預(yù)處理。所謂預(yù)處理,就是編譯前,先進(jìn)行些預(yù)先處理,如代替源代碼中需要代替的部分。#include就是這么一個(gè)預(yù)處理指示指令。為了弄清楚#include的作用,現(xiàn)在請(qǐng)讀者思考一個(gè)問題:編譯器如何知道有printf這個(gè)函數(shù)?2.4.5#include有什么用2.4.6怎么找到函數(shù)試驗(yàn),修改printf為其他單詞,如printfitcast,則在編譯的時(shí)候,編譯器會(huì)返回錯(cuò)誤:
出現(xiàn)一個(gè)錯(cuò)誤,調(diào)用了一個(gè)沒有定義的函數(shù)printfitcast。Bug的英文意思是臭蟲,被引入到計(jì)算機(jī)領(lǐng)域,需要追溯到第一代計(jì)算機(jī)時(shí)代。當(dāng)時(shí)的計(jì)算機(jī)是由許多真空管構(gòu)成,需要利用大量的電力使真空管發(fā)光。某天,一只蟲子爬進(jìn)了其中的某只真空管中,計(jì)算機(jī)于是停止工作了。研究人員耗費(fèi)很長(zhǎng)時(shí)間,找來找去,一處地方一處地方排查,最后終于發(fā)現(xiàn)了這個(gè)蟲子,取出蟲子后,計(jì)算機(jī)就恢復(fù)了正常。于是bug這個(gè)詞語就在計(jì)算機(jī)領(lǐng)域中代表了隱藏的錯(cuò)誤、缺陷、漏洞或者問題。把排除錯(cuò)誤的過程稱為debug。斷點(diǎn)是為了方便程序員在調(diào)試過程中觀察程序內(nèi)部各狀態(tài)而專門設(shè)置的一種調(diào)試手段。也就是在調(diào)試模式下運(yùn)行程序過程中,當(dāng)程序語句運(yùn)行到設(shè)置的斷點(diǎn)后,暫停程序運(yùn)行,但是程序當(dāng)時(shí)的內(nèi)存、寄存器、上下文環(huán)境等數(shù)據(jù)都被保持,并且在源代碼編輯器中指示出當(dāng)前停留在代碼的哪一行。然后程序員就可以不慌不忙利用調(diào)試器查看程序內(nèi)部狀態(tài)。2.4.6怎么找到函數(shù)試驗(yàn),修改p2.4.7#include是用于做啥做一個(gè)試驗(yàn):將中的第一行代碼刪除掉。就是去掉了“#include<stdio.h>”,再編譯看出現(xiàn)什么現(xiàn)象。是不是編譯器又提示缺少函數(shù)原型:#include的作用#include是C語言預(yù)處理器指示符。#和include之間可以有多個(gè)空格。#也不一定要頂格,但是一定是第一個(gè)非空白字符。#include的作用,是告訴編譯器在編譯前,要做些預(yù)先處理:將后面<>中的文件內(nèi)容包含到當(dāng)前文件內(nèi)。所謂包含,是指將<>中列出的文件的內(nèi)容復(fù)制到當(dāng)前文件里。注意:#一定要是第一個(gè)非空白字符。否則編譯器會(huì)提示錯(cuò)誤,并且錯(cuò)誤信息和出錯(cuò)原因完全不匹配。因?yàn)間etchar和printf兩個(gè)函數(shù)的聲明位于stdio.h文件中,所以簡(jiǎn)單的用#include把stdio.h文件包含進(jìn)來,自然就把getchar和printf兩個(gè)函數(shù)的聲明包含進(jìn)來了。說明:函數(shù)聲明只是向編譯器登記有這么一個(gè)函數(shù),聲明了函數(shù)不調(diào)用這個(gè)函數(shù),是被容許的。這就是為什么包含了整個(gè)stdio.h文件,里面聲明了很多其他函數(shù),但實(shí)際沒有使用這些函數(shù)而編譯器又不提示的原因。2.4.7#include是用于做預(yù)處理指令例如包含頭文件全局聲明在函數(shù)之外進(jìn)行的數(shù)據(jù)聲明函數(shù)定義函數(shù)用來實(shí)現(xiàn)功能必須包含一個(gè)main函數(shù)(只能有一個(gè))每個(gè)函數(shù)都用來實(shí)現(xiàn)若干特定功能被調(diào)用的函數(shù)可以是庫函數(shù),也可以是自己編制設(shè)計(jì)的函數(shù)程序總是從main函數(shù)開始執(zhí)行C程序書寫格式是比較自由的,一行可以幾個(gè)語句,便于閱讀只寫一行數(shù)據(jù)聲明和語句最后必須有分號(hào)
C語言本身不提供輸入輸出語句程序應(yīng)當(dāng)包含注釋,增加可讀性一個(gè)程序由一個(gè)或多個(gè)源程序文件組成函數(shù)是C程序的主要組成部分
C程序?qū)τ?jì)算機(jī)的操作由C語句完成0102032.4.8C程序結(jié)構(gòu)預(yù)處理指令例如包含問題分析解決什么問題怎么解決編寫程序分析結(jié)果結(jié)果錯(cuò)了,程序肯定錯(cuò)結(jié)果對(duì)了,程序未必對(duì)設(shè)計(jì)算法對(duì)源程序進(jìn)行編輯、編譯和連接2.5C語言的編程流程問題分析解決什么問題2.5.1數(shù)據(jù)結(jié)構(gòu)與算法對(duì)數(shù)據(jù)的描述
對(duì)操作的描述算法+數(shù)據(jù)結(jié)構(gòu)=程序在程序中要指定用到哪些數(shù)據(jù)以及這些數(shù)據(jù)的類型和數(shù)據(jù)的組織形式這就是數(shù)據(jù)結(jié)構(gòu)(datastructure)即要求計(jì)算機(jī)進(jìn)行操作的步驟也就是算法(algorithm)語言只是程序工具程序2.5.1數(shù)據(jù)結(jié)構(gòu)與程序設(shè)計(jì)方法語言工具數(shù)據(jù)結(jié)構(gòu)算法1234C語言C++語言
面向過程
面向?qū)ο?/p>
二叉樹隊(duì)列棧紅黑樹
鏈表等等
快速排序算法冒泡排序算法選擇排序算法等等算法、數(shù)據(jù)結(jié)構(gòu)、程序設(shè)計(jì)方法和語言工具是一個(gè)程序設(shè)計(jì)人員應(yīng)具備的知識(shí).2.5.2一個(gè)程序設(shè)計(jì)人員應(yīng)具備的知識(shí)程序設(shè)計(jì)方法語言工具2.5.3算法示例
笨辦法
聰明的辦法1+2+3+4~~~~~一直加到100一個(gè)一個(gè)的相加,1+2=3,3+3=6,6+4=10,~~~~~~~~~~~最后等于50501+100=2+99=3+98~~~~~~~=10150*101=5050無論什么方法都是解決問題問題2.5.3算法示例有窮性。一個(gè)算法應(yīng)包含有限的操作步驟,而不能是無限的確定性。算法中的每一個(gè)步驟都應(yīng)當(dāng)是確定的,而不應(yīng)當(dāng)是含糊的、模棱兩可的。有零個(gè)或多個(gè)輸入。所謂輸入是指在執(zhí)行算法時(shí)需要從外界取得必要的信息。有一個(gè)或多個(gè)輸出。算法的目的是為了求解,“解”就是輸出。沒有輸出的算法是沒有意義的。有效性。算法中的每一個(gè)步驟都應(yīng)當(dāng)能有效地執(zhí)行,并得到確定的結(jié)果Descriptionofthecontents一個(gè)有效算法應(yīng)該具有以下特點(diǎn).2.5.4算法的特點(diǎn)有窮性。一個(gè)算法應(yīng)包面向過程的編程語言,程序設(shè)計(jì)方法結(jié)構(gòu)化編碼模塊化設(shè)計(jì)自頂向下逐步細(xì)化2.5.5C語言是面向過程的編程語言面向過程的編程語言,2.5.6C語言編程步驟從.obj鏈接成.exe,如果調(diào)試出現(xiàn)問題,就返回源碼編輯編輯源代碼編譯源文件鏈接生成應(yīng)用程序代碼在.c與.h頭文件中寫好了以后,從.c,.h文件編譯成.obj代碼被編譯為二進(jìn)制文件.obj以后,打包一些調(diào)用的庫,鏈接成.exe可執(zhí)行文件C語言的編程步驟需要三個(gè)步驟2.5.6C語言編程步驟從.obj.CPP.C文件C語言與C++語言.CPP是C++的源文件,C++語言兼容C語言,編寫C語言代碼可以用C++的源文件.CPP。C++語言兼容C語言,C語言是面向過程,C++語言既能面向過程也可以面向?qū)ο蟆?C是純粹的C語言文件,不可以有C++語言的代碼,默認(rèn)自帶一些庫文件。2.5.7.C與.CPP文件的差別.CPP.C文件C語言與C++2.6初學(xué)者疑惑集成開發(fā)環(huán)境,例如VisualStudio2010就是一個(gè)IDE.IDE所有的代碼字符必須在英文狀態(tài)下輸入,否則會(huì)因?yàn)槿前虢菃栴}報(bào)錯(cuò),例如輸出中文“傳智播客”代碼-字符學(xué)習(xí)C++之前,必須先學(xué)C語言,不懂C語言的精髓,難以用好C++.可以直接學(xué)C++?學(xué)會(huì)編寫代碼,用代碼解決問題,是最快的學(xué)習(xí)途徑.C/C++的學(xué)習(xí)秘訣2.6初學(xué)者疑惑集成開發(fā)環(huán)境,例如1.2.3.新建一個(gè)工程,以.CPP文件作為源文件,打印出HelloChina新建一個(gè)工程,以.C文件作為源文件,打印出自己的姓名,年齡,性別,身高,體重,愛好,籍貫新建一個(gè)工程,以.C文件作為源文件,打印出Hello,傳智播客2.6.1練習(xí)作業(yè)1.2.3.新建一個(gè)工程,以.傳智播客創(chuàng)始人張孝祥老師的理念就是幫助每一位學(xué)員都成功。幫助每一位學(xué)員都少走彎路。C語言C++語言高薪就業(yè)謝謝!傳智播客傳智播客創(chuàng)始人張孝祥老師的理念就是幫助每一位學(xué)員都成功。幫助傳智播客C語言入門教程(2)講師:尹成QQ:77025077博客:/yincheng01微博:/yincheng8848Mail:yinc13@網(wǎng)址:C語言C++語言傳智播客高薪就業(yè)傳智播客C語言入門教程(2)講師:尹成C語言C++語言2.安裝VisualStudio20103.VisualStudio開發(fā)環(huán)境概述4.跟我一起實(shí)現(xiàn)HelloWorld5.C語言編譯,鏈接,生成的過程傳智播客C語言入門教程(2)大綱1.C語言開發(fā)環(huán)境概述C語言課程概述6.初學(xué)者的疑難解答2.安裝VisualStudio2.1.1VC++,C++,C,TC:跳出這團(tuán)漿糊——認(rèn)識(shí)開發(fā)環(huán)境和語言的區(qū)別VC++,一般是指微軟公司的VisualStudio開發(fā)套件中的VisualC++開發(fā)環(huán)境。所謂開發(fā)環(huán)境,是集成了源代碼編輯,編譯,鏈接,調(diào)試等功能的一個(gè)綜合程序。VisualC++C++,是另外一門有些類似C語言語法的面向?qū)ο蟮母呒?jí)語言。雖然C語言不加修改就可以被C++編譯器編譯,但C和C++是完全不同思想的兩門語言,不應(yīng)將C++看作是C的超集。.C++C就是指C語言了。CTC是Borland公司開發(fā)的C編程環(huán)境,是TrobeC的簡(jiǎn)稱。一般學(xué)習(xí)C語言,都使用該編程環(huán)境,只是這已經(jīng)算是老古董了,對(duì)于現(xiàn)在的操作系統(tǒng),使用TC2來編寫程序,已經(jīng)很不合時(shí)宜了TurboC/C++2.1.1VC++,C++,C,T2.1.2IDE-VisualStudio2010簡(jiǎn)介安裝簡(jiǎn)單,支持主流操作系統(tǒng)XP,Win7,Win8中文版全中文界面,幫助也是中文,學(xué)習(xí)簡(jiǎn)單代碼智能提示,功能強(qiáng)大VisualStudio20102.1.2IDE-VisualSt2.2.1VS2010下載百度網(wǎng)盤下載地址:/share/link?shareid=16864835&uk=4245461507下載該文件:把文件下載好以后打開,選擇用360壓縮打開,安裝之前請(qǐng)關(guān)閉殺毒軟件,360安全衛(wèi)士,避免安裝失敗2.2.1VS2010下載百度網(wǎng)2.2.2VS2010打開選中setup.exe選擇解壓縮打開2.2.2VS2010打開選中2.2.3初始化開始安裝點(diǎn)擊安裝MicrosoftVisualStudio20102.2.3初始化開始安裝點(diǎn)擊安裝M2.2.4VS2010等待加載等待它漫長(zhǎng)的加載2.2.4VS2010等待加載等待2.2.5加載完成下一步點(diǎn)擊下一步2.2.5加載完成下一步點(diǎn)擊下一步2.2.6同意相關(guān)條款選擇同意條款,點(diǎn)擊“下一步”按鈕2.2.6同意相關(guān)條款選擇同意條款2.2.7定制安裝選項(xiàng)硬盤夠大的同學(xué)選擇完全,不夠的同學(xué)選擇自定義,同時(shí)可以定制軟件安裝路徑2.2.7定制安裝選項(xiàng)硬盤夠大的同2.2.8定制安裝的功能在這里可以定制安裝哪些,不安裝哪些,必須勾選VisualC++2.2.8定制安裝的功能在這里可以2.2.9開始安裝開始安裝,忍耐,等待2.2.9開始安裝開始安裝,忍耐2.2.10處理重啟如果提示重啟,則重啟2.2.10處理重啟如果提示重啟,2.2.11繼續(xù)安裝繼續(xù)安裝2.2.11繼續(xù)安裝繼續(xù)安裝2.2.12安裝完成大功告成,可以繼續(xù)安裝文檔,可裝可不裝,點(diǎn)擊安裝文檔選擇相關(guān)文檔安裝即可2.2.12安裝完成大功告成,可以2.2.13VS2010啟動(dòng)畫面2.2.13VS2010啟動(dòng)畫面2.3VisualStudo2010開發(fā)環(huán)境2.3VisualStudo2012.3.1VS2010新建項(xiàng)目2.3.1VS2010新建項(xiàng)目2.3.2VS2010項(xiàng)目窗口2.3.2VS2010項(xiàng)目窗口2.4HelloWorld案例的代碼項(xiàng)目名稱不能包含任何非字母數(shù)字字符(包括“.”和“..”),并且它們的長(zhǎng)度不能超過256個(gè)字符#include<stdio.h>/*包含該頭文件的目的是使用了函數(shù)printf*/
/*空行,主要是為了分隔,編譯器忽略。*/voidmain(void)
/*主函數(shù),入口點(diǎn)*/{
/*函數(shù)開始*/
printf("\nHelloWorld!");
/*打印字符串*/}2.4HelloWorld案例的代2.4.1HelloWorld代碼概貌很短,簡(jiǎn)單幾行文字,就創(chuàng)建了一個(gè)可以運(yùn)行的程序,非常神奇。代碼雖小,但五臟俱全,綜觀整個(gè)代碼,可以總結(jié)如下特點(diǎn):(1)由單詞,符號(hào),空白組成。單詞以英語單詞為主,有的單詞就是純正的英語單詞,如main、void、include;有的不是,如getchar、pringf。單詞一般都小寫。代碼中的標(biāo)點(diǎn)符號(hào)并不是隨意輸入的。每個(gè)符號(hào)在C中都有自己的含義。中出現(xiàn)的符號(hào),有“#”、“<>”、“()”、“\”、“/*”、“*/”、“{}”、“;”、“””。單詞與單詞之間用空白分隔,空白可以是空格,也可以是Tab制表符??瞻椎膫€(gè)數(shù)沒有限制。(2)如同閱讀小說一樣,C源代碼也是從上往下閱讀。也就是C源代碼的先后順序是有講究的。行與行之間也可以有空白行??瞻仔袛?shù)也是沒有限制的。有的行頂格書寫,有的行卻又后退了幾個(gè)空格,這種后退,稱為“縮進(jìn)”。如何縮進(jìn),這些也都是有講究的。(3)并沒有專門的標(biāo)志表示文件從哪里起始,也沒有標(biāo)志表示文件到哪里結(jié)束。從第一個(gè)字符開始,文件就開始了,到最后一個(gè)字符結(jié)束,文件就結(jié)束了。2.4.1HelloWorld代碼2.4.2HelloWorld代碼解析先看下面的代碼段,這段代碼是從中截取過來的,為了學(xué)習(xí)方便,去掉了注釋部分:voidmain(void) {printf("\nHelloWorld!");getchar(); }voidmain(void){…}這一段是在定義C程序的主函數(shù)。函數(shù)是可以完成一定功能的子程序。Main函數(shù)是C語言程序的起始執(zhí)行點(diǎn)。每一個(gè)C程序必須有且僅有一個(gè)main函數(shù),它是由程序員提供的。2.4.2HelloWorld代碼2.4.3注釋-程序員的解釋出現(xiàn)最多的是“/*”和“*/”包裹起來的中文語句,這些是注釋。注釋是幫助程序員閱讀源代碼和理解源代碼的。編譯器在編譯源代碼的時(shí)候,在目標(biāo)代碼生成以前,會(huì)把注釋剔除掉然后再進(jìn)行編譯,當(dāng)然編譯器是不會(huì)修改源文件的,這一切是在內(nèi)存中完成。由于對(duì)于注釋部分忽略不處理,就如同沒有這些字符一樣,所以注釋不會(huì)增加編譯后的程序的可執(zhí)行代碼長(zhǎng)度,對(duì)程序運(yùn)行不起任何作用。注釋分為兩種//,/**/2.4.3注釋-程序員的解釋出現(xiàn)最2.4.4屏幕上顯示文字-函數(shù)調(diào)用Main函數(shù)體中:printf("\nHelloWorld!");這行是調(diào)用了C語言提供的打印數(shù)輸出函數(shù),該函數(shù)的名字是“printf”,小括號(hào)內(nèi)雙引號(hào)括起來的文字是printf函數(shù)的參數(shù)。該函數(shù)的功能是把小括號(hào)里的文字原樣打印在屏幕上。也就是說雙引號(hào)里的內(nèi)容變化,則打印在屏幕上的文字也會(huì)變化。請(qǐng)讀者自己試驗(yàn)修改雙引號(hào)里的文字。說明:“\n”在這里有特殊的含義,讀者可以發(fā)現(xiàn)“\n”并沒有在屏幕中打印出來?!癨n”中的“\”是轉(zhuǎn)義字符,表示其后面緊跟的字符有專門的意思?!癨n”表示將光標(biāo)移到第二行第一格。也就是回車換行的意思。2.4.4屏幕上顯示文字-函數(shù)調(diào)用2.4.5#include有什么用源代碼最終是需要被編譯器處理的。編譯器編譯的過程比較復(fù)雜,但一般需要經(jīng)歷好幾步。第一步是預(yù)處理。所謂預(yù)處理,就是編譯前,先進(jìn)行些預(yù)先處理,如代替源代碼中需要代替的部分。#include就是這么一個(gè)預(yù)處理指示指令。為了弄清楚#include的作用,現(xiàn)在請(qǐng)讀者思考一個(gè)問題:編譯器如何知道有printf這個(gè)函數(shù)?2.4.5#include有什么用2.4.6怎么找到函數(shù)試驗(yàn),修改printf為其他單詞,如printfitcast,則在編譯的時(shí)候,編譯器會(huì)返回錯(cuò)誤:
出現(xiàn)一個(gè)錯(cuò)誤,調(diào)用了一個(gè)沒有定義的函數(shù)printfitcast。Bug的英文意思是臭蟲,被引入到計(jì)算機(jī)領(lǐng)域,需要追溯到第一代計(jì)算機(jī)時(shí)代。當(dāng)時(shí)的計(jì)算機(jī)是由許多真空管構(gòu)成,需要利用大量的電力使真空管發(fā)光。某天,一只蟲子爬進(jìn)了其中的某只真空管中,計(jì)算機(jī)于是停止工作了。研究人員耗費(fèi)很長(zhǎng)時(shí)間,找來找去,一處地方一處地方排查,最后終于發(fā)現(xiàn)了這個(gè)蟲子,取出蟲子后,計(jì)算機(jī)就恢復(fù)了正常。于是bug這個(gè)詞語就在計(jì)算機(jī)領(lǐng)域中代表了隱藏的錯(cuò)誤、缺陷、漏洞或者問題。把排除錯(cuò)誤的過程稱為debug。斷點(diǎn)是為了方便程序員在調(diào)試過程中觀察程序內(nèi)部各狀態(tài)而專門設(shè)置的一種調(diào)試手段。也就是在調(diào)試模式下運(yùn)行程序過程中,當(dāng)程序語句運(yùn)行到設(shè)置的斷點(diǎn)后,暫停程序運(yùn)行,但是程序當(dāng)時(shí)的內(nèi)存、寄存器、上下文環(huán)境等數(shù)據(jù)都被保持,并且在源代碼編輯器中指示出當(dāng)前停留在代碼的哪一行。然后程序員就可以不慌不忙利用調(diào)試器查看程序內(nèi)部狀態(tài)。2.4.6怎么找到函數(shù)試驗(yàn),修改p2.4.7#include是用于做啥做一個(gè)試驗(yàn):將中的第一行代碼刪除掉。就是去掉了“#include<stdio.h>”,再編譯看出現(xiàn)什么現(xiàn)象。是不是編譯器又提示缺少函數(shù)原型:#include的作用#include是C語言預(yù)處理器指示符。#和include之間可以有多個(gè)空格。#也不一定要頂格,但是一定是第一個(gè)非空白字符。#include的作用,是告訴編譯器在編譯前,要做些預(yù)先處理:將后面<>中的文件內(nèi)容包含到當(dāng)前文件內(nèi)。所謂包含,是指將<>中列出的文件的內(nèi)容復(fù)制到當(dāng)前文件里。注意:#一定要是第一個(gè)非空白字符。否則編譯器會(huì)提示錯(cuò)誤,并且錯(cuò)誤信息和出錯(cuò)原因完全不匹配。因?yàn)間etchar和printf兩個(gè)函數(shù)的聲明位于stdio.h文件中,所以簡(jiǎn)單的用#include把stdio.h文件包含進(jìn)來,自然就把getchar和printf兩個(gè)函數(shù)的聲明包含進(jìn)來了。說明:函數(shù)聲明只是向編譯器登記有這么一個(gè)函數(shù),聲明了函數(shù)不調(diào)用這個(gè)函數(shù),是被容許的。這就是為什么包含了整個(gè)stdio.h文件,里面聲明了很多其他函數(shù),但實(shí)際沒有使用這些函數(shù)而編譯器又不提示的原因。2.4.7#include是用于做預(yù)處理指令例如包含頭文件全局聲明在函數(shù)之外進(jìn)行的數(shù)據(jù)聲明函數(shù)定義函數(shù)用來實(shí)現(xiàn)功能必須包含一個(gè)main函數(shù)(只能有一個(gè))每個(gè)函數(shù)都用來實(shí)現(xiàn)若干特定功能被調(diào)用的函數(shù)可以是庫函數(shù),也可以是自己編制設(shè)計(jì)的函數(shù)程序總是從main函數(shù)開始執(zhí)行C程序書寫格式是比較自由的,一行可以幾個(gè)語句,便于閱讀只寫一行數(shù)據(jù)聲明和語句最后必須有分號(hào)
C語言本身不提供輸入輸出語句程序應(yīng)當(dāng)包含注釋,增加可讀性一個(gè)程序由一個(gè)或多個(gè)源程序文件組成函數(shù)是C程序的主要組成部分
C程序?qū)τ?jì)算機(jī)的操作由C語句完成0102032.4.8C程序結(jié)構(gòu)預(yù)處理指令例如包含問題分析解決什么問題怎么解決編寫程序分析結(jié)果結(jié)果錯(cuò)了,程序肯定錯(cuò)結(jié)果對(duì)了,程序未必對(duì)設(shè)計(jì)算法對(duì)源程序進(jìn)行編輯、編譯和連接2.5C語言的編程流程問題分析解決什么問題2.5.1數(shù)據(jù)結(jié)構(gòu)與算法對(duì)數(shù)據(jù)的描述
對(duì)操作的描述算法+數(shù)據(jù)結(jié)構(gòu)=程序在程序中要指定用到哪些數(shù)據(jù)以及這些數(shù)據(jù)的類型和數(shù)據(jù)的組織形式這就是數(shù)據(jù)結(jié)構(gòu)(datastructure)即要求計(jì)算機(jī)進(jìn)行操作的步驟也就是算法(algorithm)語言只是程序工具程序2.5.1數(shù)據(jù)結(jié)構(gòu)與程序設(shè)計(jì)方法語言工具數(shù)據(jù)結(jié)構(gòu)算法1234C語言C++語言
面向過程
面向?qū)ο?/p>
二叉樹隊(duì)列棧紅黑樹
鏈表等等
快速排序算法冒泡排序算法選擇排序算法等等算法、數(shù)據(jù)結(jié)構(gòu)、程序設(shè)計(jì)方法和語言工具是一個(gè)程序設(shè)計(jì)人員應(yīng)具備的知識(shí).2.5.2一個(gè)程序設(shè)計(jì)人員應(yīng)具備的知識(shí)程序設(shè)計(jì)方法語言工具2.5.3算法示例
笨辦法
聰明的辦法1+2+3+4~~~~~
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度出國勞務(wù)人員權(quán)益保障與服務(wù)合同范本3篇
- 二零二五年度校園食堂餐飲服務(wù)承包合作協(xié)議3篇
- 二零二五年度高端酒店廚房設(shè)備承包合同2篇
- 二零二五年度數(shù)字經(jīng)濟(jì)總經(jīng)理職務(wù)聘用合同2篇
- 2025至2030年中國13槽6層無源母板數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 二零二四年度養(yǎng)殖業(yè)彩鋼瓦隔熱安裝合同
- 二零二五年度高端打印機(jī)銷售代理合同協(xié)議2篇
- 2025年中國單總線溫度測(cè)控系統(tǒng)市場(chǎng)調(diào)查研究報(bào)告
- 2025至2031年中國陶瓷遠(yuǎn)紅外加熱管行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國酸雨采樣器行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024年蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫含答案解析
- 人教版初中語文2022-2024年三年中考真題匯編-學(xué)生版-專題08 古詩詞名篇名句默寫
- 2024-2025學(xué)年人教版(2024)七年級(jí)(上)數(shù)學(xué)寒假作業(yè)(十二)
- 山西粵電能源有限公司招聘筆試沖刺題2025
- ESG表現(xiàn)對(duì)企業(yè)財(cái)務(wù)績(jī)效的影響研究
- 醫(yī)療行業(yè)軟件系統(tǒng)應(yīng)急預(yù)案
- 使用錯(cuò)誤評(píng)估報(bào)告(可用性工程)模版
- 《精密板料矯平機(jī) 第2部分:技術(shù)規(guī)范》
- 2024年高考全國甲卷英語試卷(含答案)
- 四年級(jí)上冊(cè)脫式計(jì)算300題及答案
- TQGCML 2624-2023 母嬰級(jí)空氣凈化器 潔凈空氣和凈化等級(jí)技術(shù)要求
評(píng)論
0/150
提交評(píng)論