西安誰家做網(wǎng)站seo營銷培訓(xùn)
第一個C語言程序
我們有兩種方式從計算機獲得信息:一是看屏幕上的文字、圖片、視頻等,二是聽從喇叭發(fā)出來的聲音。讓喇叭發(fā)出聲音目前還比較麻煩,我們先來看看如何在屏幕上顯示一些文字吧。
在屏幕上顯示文字非常簡單,只需要一個語句,例如,下面的代碼會讓屏幕顯示出“C語言中文網(wǎng)”:
puts("C語言中文網(wǎng)");
這里有一個生疏的詞匯puts
,用來讓計算機在屏幕上顯示文字。
更加專業(yè)的稱呼:
- "在屏幕上顯示文字"叫做輸出(Output);
- 每個文字都是一個字符(Character);
- 多個字符組合起來,就是一個字符序列,叫做字符串(String)。
puts 是 output string 的縮寫,意思是”輸出字符串“。
在C語言中,字符串需要用雙引號" "
包圍起來,C語言中文網(wǎng)
什么也不是,計算機不認識它,"C語言中文網(wǎng)"
才是字符串。
puts 在輸出字符串的時候,需要將字符串放在( )
內(nèi)。
在漢語和英語中,分別使用。
和.
表示一句話的結(jié)束,而在C語言中,使用;
表示一個語句的結(jié)束。puts("C語言中文網(wǎng)")
表達了完整的意思,是一個完整的語句,需要在最后加上;
,表示當前語句結(jié)束了。
總結(jié)起來,上面的語句可以分為三個部分:
puts( )
命令計算機輸出字符串;"C語言中文網(wǎng)"
是要輸出的內(nèi)容;;
表示語句結(jié)束。
C語言程序的整體框架
puts 可以在顯示器上輸出內(nèi)容,但是僅有 puts 是不夠的,程序不能運行,還需要添加其他代碼,構(gòu)成一個完整的框架。完整的程序如下:
#include <stdio.h> int main() {puts("C語言中文網(wǎng)");return 0; }
第 1~3 行、第 5~6 行是固定的,所有C語言源代碼都必須有這幾行。你暫時不需要理解它們是什么意思,反正有這個就是了,以后會慢慢講解。
但是請記住,今后我們寫的所有類似 puts 這樣的語句,都必須放在{ }
之間才有效。
上面的代碼,看起來枯燥無趣,不好區(qū)分各個語句,我們不妨來給它們加上顏色和行號,如下所示:
?
- #include <stdio.h>
- int main()
- {
- ??? puts("C語言中文網(wǎng)");
- ??? return 0;
- }
顏色和行號是筆者自己加上去的,主要是為了讓大家閱讀方便,明顯地區(qū)分各個語句,C語言本身沒有對這些作要求,你可以隨意設(shè)置各個字符的顏色,也可以沒有顏色。
這就是我們的第一個C語言程序,它非常簡單,帶領(lǐng)我們進入了C語言的大門。
編程時請選擇正確的輸入法,嚴格區(qū)分中英文
圖:搜狗輸入法半角和全角
我們知道,在編程時要使用英文半角輸入法。為了加強練習(xí),出個選擇題,請大家判斷下面哪一種描述是正確的:
A) 編程的時候不用在意中英文符號的區(qū)別。
B) 在源代碼的任何地方都不能出現(xiàn)中文漢字、字符等。
C) 感嘆號沒有中文和英文的區(qū)別。
D) 編程時,使用的英文引號,也有左引號和右引號的區(qū)別。
E) 中文和英文模式下的制表符(鍵盤tab鍵)輸入效果一致。
答案:E 選項正確。
什么是源文件?
在開發(fā)軟件的過程中,我們需要將編寫好的代碼(Code)保存到一個文件中,這樣代碼才不會丟失,才能夠被編譯器找到,才能最終變成可執(zhí)行文件。這種用來保存代碼的文件就叫做源文件(Source File)。
我們將在《 編譯和鏈接》一節(jié)中講解編譯器的概念。
每種編程語言的源文件都有特定的后綴,以方便被編譯器識別,被程序員理解。源文件后綴大都根據(jù)編程語言本身的名字來命名,例如:
- C語言源文件的后綴是
.c
; - C++語言(C Plus Plus)源文件的后綴是
.cpp
; - Java?源文件的后綴是
.java
; - Python?源文件的后綴是
.py
; - JavaScript?源文件后置是
.js
。
源文件其實就是純文本文件,它的內(nèi)部并沒有特殊格式,能證明這一結(jié)論的典型例子是:在 Windows 下用記事本程序新建一個文本文檔,并命名為demo.txt
,輸入一段C語言代碼并保存,然后將該文件強制重命名為demo.c
(后綴從.txt
變成了.c
),發(fā)現(xiàn)編譯器依然能夠正確識別其中的C語言代碼,并順利生成可執(zhí)行文件。
源文件的后綴僅僅是為了表明該文件中保存的是某種語言的代碼(例如.c
文件中保存的是C語言代碼),這樣程序員更加容易區(qū)分,編譯器也更加容易識別,它并不會導(dǎo)致該文件的內(nèi)部格式發(fā)生改變。
C++?是站在C語言的肩膀上發(fā)展起來的,是在C語言的基礎(chǔ)上進行的擴展,C++ 包含了C語言的全部內(nèi)容(請猛擊《C語言和C++到底有什么關(guān)系》一文了解更多),將C語言代碼放在.cpp
文件中不會有錯,很多初學(xué)者都是這么做的,很多大學(xué)老師也是這么教的。但是,我還是強烈建議將C語言代碼放在.c
文件中,這樣能夠更加嚴格地遵循C語言的語法,也能夠更加清晰地了解C語言和C++的區(qū)別。
C語言編譯和鏈接詳解(通俗易懂,深入本質(zhì))
件組合起來。
再次強調(diào),編譯是針對一個源文件的,有多少個源文件就需要編譯多少次,就會生成多少個目標文件。
總結(jié)
不管我們編寫的代碼有多么簡單,都必須經(jīng)過「編譯 --> 鏈接」的過程才能生成可執(zhí)行文件:
- 編譯就是將我們編寫的源代碼“翻譯”成計算機可以識別的二進制格式,它們以目標文件的形式存在;
- 鏈接就是一個“打包”的過程,它將所有的目標文件以及系統(tǒng)組件組合成一個可執(zhí)行文件。
如果不是特別強調(diào),一般情況下我們所說的“編譯器”實際上也包括了鏈接器,比如,你使用了哪種編譯器?去哪里下載C語言編譯器?我的編譯器為什么報錯了呢?
C語言編譯器(C語言編程軟件)完全攻略(包含所有平臺)
嵌入式系統(tǒng)
而在嵌入式系統(tǒng)方面,可用的C語言編譯器就非常豐富了,比如:
- 用于 Keil 公司 51 系列單片機的 Keil C51 編譯器;
- 當前大紅大紫的 Arduino 板搭載的開發(fā)套件,可用針對 AVR 微控制器的 AVR GCC 編譯器;
- ARM 自己出的 ADS(ARM Development Suite)、RVDS(RealView Development Suite)和當前最新的 DS-5 Studio;
- DSP 設(shè)計商 TI(Texas Instruments)的 CCS(Code Composer Studio);
- DSP 設(shè)計商 ADI(Analog Devices,Inc.)的 Visual DSP++ 編譯器,等等。
通常,用于嵌入式系統(tǒng)開發(fā)的編譯工具鏈都沒有免費版本,而且一般需要通過國內(nèi)代理進行購買。所以,這對于個人開發(fā)者或者嵌入式系統(tǒng)愛好者而言是一道不低的門檻。
不過 Arduino 的開發(fā)套件是可免費下載使用的,并且用它做開發(fā)板連接調(diào)試也十分簡單。Arduino 所采用的C編譯器是基于 GCC 的。
還有像樹莓派(Raspberry Pi)這種迷你電腦可以直接使用 GCC 和 Clang 編譯器。此外,還有像 nVidia 公司推出的 Jetson TK 系列開發(fā)板也可直接使用 GCC 和 Clang 編譯器。樹莓派與 Jetson TK 都默認安裝了 Linux 操作系統(tǒng)。
在嵌入式領(lǐng)域,一般比較低端的單片機,比如 8 位的 MCU 所對應(yīng)的C編譯器可能只支持 C90 標準,有些甚至連 C90 標準的很多特性都不支持。因為它們一方面內(nèi)存小,ROM 的容量也小;另一方面,本身處理器機能就十分有限,有些甚至無法支持函數(shù)指針,因為處理器本身不包含通過寄存器做間接過程調(diào)用的指令。
而像 32 位處理器或 DSP,一般都至少能支持 C99 標準,它們本身的性能也十分強大。而像 ARM 出的 RVDS 編譯器甚至可用 GNU 語法擴展。
下圖展示了上述C語言編譯器的分類。
?什么是IDE(集成開發(fā)環(huán)境)?
實際開發(fā)中,除了編譯器是必須的工具,我們往往還需要很多其他輔助軟件,例如:
- 編輯器:用來編寫代碼,并且給代碼著色,以方便閱讀;
- 代碼提示器:輸入部分代碼,即可提示全部代碼,加速代碼的編寫過程;
- 調(diào)試器:觀察程序的每一個運行步驟,發(fā)現(xiàn)程序的邏輯錯誤;
- 項目管理工具:對程序涉及到的所有資源進行管理,包括源文件、圖片、視頻、第三方庫等;
- 漂亮的界面:各種按鈕、面板、菜單、窗口等控件整齊排布,操作更方便。
這些工具通常被打包在一起,統(tǒng)一發(fā)布和安裝,例如 Visual Studio、Dev?C++、Xcode、Visual C++ 6.0、C-Free、Code::Blocks 等,它們統(tǒng)稱為集成開發(fā)環(huán)境(IDE,Integrated Development Environment)。
集成開發(fā)環(huán)境就是一系列開發(fā)工具的組合套裝。這就好比臺式機,一個臺式機的核心部件是主機,有了主機就能獨立工作了,但是我們在購買臺式機時,往往還要附帶上顯示器、鍵盤、鼠標、U盤、攝像頭等外圍設(shè)備,因為只有主機太不方便了,必須有外設(shè)才能玩的爽。
集成開發(fā)環(huán)境也是這個道理,只有編譯器不方便,所以還要增加其他的輔助工具。在實際開發(fā)中,我一般也是使用集成開發(fā)環(huán)境,而不是單獨地使用編譯器。
通俗的稱呼
有時候為了稱呼方便,或者初學(xué)者沒有嚴格區(qū)分概念,也會將C語言集成開發(fā)環(huán)境稱作“C語言編譯器”或者“C語言編程軟件”。這里大家不要認為是一種錯誤,就把它當做“鄉(xiāng)間俗語”吧。
什么是工程/項目?
一個真正的程序(也可以說軟件)往往包含多項功能,每一項功能都需要幾十行甚至幾千行、幾萬行的代碼來實現(xiàn),如果我們將這些代碼都放到一個源文件中,那將會讓人崩潰,不但源文件打開速度極慢,代碼的編寫和維護也將變得非常困難。
在實際開發(fā)中,程序員都是將這些代碼分門別類地放到多個源文件中。除了這些成千上萬行的代碼,一個程序往往還要包含圖片、視頻、音頻、控件、庫(也可以說框架)等其它資源,它們也都是一個一個地文件。
為了有效地管理這些種類繁雜、數(shù)目眾多的文件,我們有理由把它們都放到一個目錄(文件夾)下,并且這個目錄下只存放與當前程序有關(guān)的資源。實際上 IDE 也是這么做的,它會為每一個程序都創(chuàng)建一個專門的目錄,將用到的所有文件都集中到這個目錄下,并對它們進行便捷的管理,比如重命名、刪除文件、編輯文件等。
這個為當前程序配備的專用文件夾,在 IDE 中也有一個專門的稱呼,叫做“Project”,翻譯過來就是“工程”或者“項目”。在 Visual?C++?6.0 下,這叫做一個“工程”,而在 Visual Studio 下,這又叫做一個“項目”,它們只是單詞“Project”的不同翻譯而已,實際上是一個概念。
工程類型/項目類型
“程序”是一個比較寬泛的稱呼,它可以細分為很多種類,例如:
- 有的程序不帶界面,完全是“黑屏”的,只能輸入一些字符或者命令,稱為控制臺程序(Console Application),例如 Windows 下的 cmd.exe,Linux 或 Mac OS 下的終端(Terminal)。
- 有的程序帶界面,看起來很漂亮,能夠使用鼠標點擊,稱為GUI程序(Graphical User Interface Program),例如 QQ、迅雷、Chrome 等。
- 有的程序不單獨出現(xiàn),而是作為其它程序的一個組成部分,普通用戶很難接觸到它們,例如靜態(tài)庫、動態(tài)庫等。
不同的程序?qū)?yīng)不同的工程類型(項目類型),使用 IDE 時必須選擇正確的工程類型才能創(chuàng)建出我們想要的程序。換句話說,IDE 包含了多種工程類型,不同的工程類型會創(chuàng)建出不同的程序。
不同的工程類型本質(zhì)上是對 IDE 中各個參數(shù)的不同設(shè)置;我們也可以創(chuàng)建一個空白的工程類型,然后自己去設(shè)置各種參數(shù)(不過一般不這樣做)。
控制臺程序?qū)?yīng)的工程類型為“Win32控制臺程序(Win32 Console Application)”,GUI 程序?qū)?yīng)的工程類型為“Win32程序(Win32 Application)”。
控制臺程序是 DOS 時代的產(chǎn)物了,它沒有復(fù)雜的功能,沒有漂亮的界面,只能看到一些文字,雖然枯燥無趣,也不實用,但是它非常簡單,不受界面的干擾,所以適合入門,我強烈建議初學(xué)者從控制臺程序?qū)W起。等大家對編程掌握的比較熟練了,能編寫上百行的代碼了,再慢慢過渡到 GUI 程序。
哪款C語言編譯器(IDE)適合初學(xué)者?
Code::Blocks 是一款開源、跨平臺、免費的 C/C++ IDE,它和 Dev C++ 非常類似,小巧靈活,易于安裝和卸載,不過它的界面要比 Dev C++ 復(fù)雜一些,不如 Dev C++ 來得清爽。
5)?Turbo C
Turbo C 是一款古老的、DOS 年代的C語言開發(fā)工具,程序員只能使用鍵盤來操作 Turbo C,不能使用鼠標,所以非常不方便。但是 Turbo C 集成了一套圖形庫,可以在控制臺程序中畫圖,看起來非常炫酷,所以至今仍然有人在使用。
6)?C-Free
C-Free 是一款國產(chǎn)的 Windows 下的C/C++ IDE,最新版本是 5.0,整個軟件才 14M,非常輕巧,安裝也簡單,界面也比 Dev C++ 漂亮。C-Free 的缺點也是調(diào)試功能弱??上У氖?#xff0c;C-Free 已經(jīng)多年不更新了,組件都老了,只能在 XP、Win7 下運行,在 Win8、Win10 下可能會存在兼容性問題。
下面我們給出了各種 IDE(含不同版本)的下載地址、安裝方法以及使用教程,并以紅色字體附帶了建議。
- VS2022?[力薦]
- ?S2022下載地址和安裝教程(圖解)
- 使用VS2022編寫C語言程序
- VS2019?[薦]
- ?S2019下載地址和安裝教程(圖解)
- 使用VS2019編寫C語言程序
- VS2017
- VS2017下載地址和安裝教程(圖解)
- 使用VS2017編寫C語言程序
- VS2015
- VS2015下載地址和安裝教程(圖解)
- 使用VS2015編寫C語言程序
- Dev C++?[薦]
- Dev C++下載地址和安裝教程(圖解)
- 使用Dev C++編寫C語言程序
- VC6.0?[不建議]
- VC6.0(VC++6.0)下載地址和安裝教程(圖解)
- 使用VC6.0(VC++6.0)編寫C語言程序
- Code::Blocks
- Code::Blocks下載地址和安裝教程(圖解)
- Code::Blocks漢化教程(附帶漢化包)
- 使用Code::Blocks編寫C語言程序
- Turbo C?[不建議]
- Turbo C 2.0下載地址和安裝教程(圖解)
- 使用Turbo C 2.0編寫C語言程序
- C-Free?[不建議]
- C-Free 5.0下載地址和激活教程(圖解)
- 使用C-Free編寫C語言程序
Linux 下如何選擇 IDE?
Linux 下可以不使用 IDE,只使用 GCC 編譯器和一個文本編輯器(例如 Gedit)即可,這樣對初學(xué)者理解C語言程序的生成過程非常有幫助,請參考:Linux GCC簡明教程(使用GCC編寫C語言程序)
當然,如果你希望使用 IDE,那么可以選擇 CodeLite、Code::Blocks、Anjuta、Eclipse、NetBeans 等。
Mac OS 下如何選擇 IDE?
Mac OS 下推薦使用 Apple 官方開發(fā)的 Xcode,在 APP Store 即可下載,具體請參見:Xcode簡明教程(使用Xcode編寫C語言程序)
另外,Visual Studio 也推出了 Mac 版本,已經(jīng)習(xí)慣了 Visual Studio 的用戶可以高興一把了。
C語言程序的錯誤和警告
?
圖7:C-Free 5.0 的錯誤提示
可以看出,C-Free 的錯誤提示信息比較少,不方便程序員糾錯。VC 和 VS 的錯誤信息類似,只是中英文的差別。
下圖分析了 VC 6.0 的錯誤信息:
圖8:錯誤信息說明
翻譯:源文件?E:\cDemo\hello.c 第5行發(fā)生了語法錯誤,錯誤代碼是?C2143,原因是?'return' 前面丟失了 ';'。
我敢保證,你寫的代碼肯定會發(fā)生錯誤,一定要有分析錯誤的能力,這是一個合格的程序員必備的技能。
分析第一個C語言程序
前面我們給出了一段最簡單的C語言代碼,并演示了如何在不同的平臺下進行編譯,這節(jié)我們來分析一下這段代碼,讓讀者有個整體的認識。代碼如下:
?
- #include <stdio.h>
- int main()
- {
- puts("C語言中文網(wǎng)");
- return 0;
- }
函數(shù)的概念
關(guān)于庫的概念,我們已在《 不要這樣學(xué)習(xí)C語言,這是一個坑》中進行了詳細介紹。
除了庫函數(shù),我們還可以編寫自己的函數(shù),拓展程序的功能。自己編寫的函數(shù)稱為自定義函數(shù)。自定義函數(shù)和庫函數(shù)在編寫和使用方式上完全相同,只是由不同的機構(gòu)來編寫。
示例中第2~6行代碼就是我們自己編寫的一個函數(shù)。main 是函數(shù)的名字,( ) 表明這是函數(shù)定義,{ } 之間的代碼是函數(shù)要實現(xiàn)的功能。
函數(shù)可以接收待處理的數(shù)據(jù),同樣可以將處理結(jié)果告訴我們;使用return
可以告知處理結(jié)果。示例中第5行代碼表明,main 函數(shù)的處理結(jié)果是整數(shù) 0。return 可以翻譯為“返回”,所以函數(shù)的處理結(jié)果被稱為返回值(Return Value)。
第2行代碼中,int 是 integer 的簡寫,意為“整數(shù)”。它告訴我們,函數(shù)的返回值是整數(shù)。
需要注意的是,示例中的自定義函數(shù)必須命名為 main。C語言規(guī)定,一個程序必須有且只有一個 main 函數(shù)。main 被稱為主函數(shù),是程序的入口函數(shù),程序運行時從 main 函數(shù)開始,直到 main 函數(shù)結(jié)束(遇到 return 或者執(zhí)行到函數(shù)末尾時,函數(shù)才結(jié)束)。
也就是說,沒有 main 函數(shù)程序?qū)⒉恢缽哪睦镩_始執(zhí)行,運行時會報錯。
綜上所述:第2~6行代碼定義了主函數(shù) main,它的返回值是整數(shù) 0,程序?qū)倪@里開始執(zhí)行。main 函數(shù)的返回值在程序運行結(jié)束時由系統(tǒng)接收。
關(guān)于自定義函數(shù)的更多內(nèi)容,我們將在《 C語言函數(shù)》一章中詳細講解,這里不再展開討論。
有的教材中將 main 函數(shù)寫作:
void main() {// Some Code... }
這在 VC6.0 下能夠通過編譯,但在 C-Free、GCC?中卻會報錯,因為這不是標準的 main 函數(shù)的寫法,大家不要被誤導(dǎo),最好按照示例中的格式來寫。
頭文件的概念
還有最后一個問題,示例中第1行的#include <stdio.h>
是什么意思呢?
C語言開發(fā)者們編寫了很多常用函數(shù),并分門別類的放在了不同的文件,這些文件就稱為頭文件(header file)。每個頭文件中都包含了若干個功能類似的函數(shù),調(diào)用某個函數(shù)時,要引入對應(yīng)的頭文件,否則編譯器找不到函數(shù)。
實際上,頭文件往往只包含函數(shù)的說明,也就是告訴我們函數(shù)怎么用,而函數(shù)本身保存在其他文件中,在鏈接時才會找到。對于初學(xué)者,可以暫時理解為頭文件中包含了若干函數(shù)。
引入頭文件使用#include
命令,并將文件名放在< >
中,#include 和 < > 之間可以有空格,也可以沒有。
頭文件以.h
為后綴,而C語言代碼文件以.c
為后綴,它們都是文本文件,沒有本質(zhì)上的區(qū)別,#include 命令的作用也僅僅是將頭文件中的文本復(fù)制到當前文件,然后和當前文件一起編譯。你可以嘗試將頭文件中的內(nèi)容復(fù)制到當前文件,那樣也可以不引入頭文件。.h
中代碼的語法規(guī)則和.c
中是一樣的,你也可以#include <xxx.c>,這是完全正確的。不過實際開發(fā)中沒有人會這樣做,這樣看起來非常不專業(yè),也不規(guī)范。
較早的C語言標準庫包含了15個頭文件,stdio.h 和 stdlib.h 是最常用的兩個:
- stdio 是 standard input output 的縮寫,stdio.h 被稱為“標準輸入輸出文件”,包含的函數(shù)大都和輸入輸出有關(guān),puts() 就是其中之一。
- stdlib 是 standard library 的縮寫,stdlib.h 被稱為“標準庫文件”,包含的函數(shù)比較雜亂,多是一些通用工具型函數(shù),system() 就是其中之一。
最后的總結(jié)
初學(xué)編程,有很多基本概念需要了解,本節(jié)就涉及到很多,建議大家把上面的內(nèi)容多讀幾遍,必將有所收獲。
本節(jié)開頭的示例是一個C語言程序的基本結(jié)構(gòu),我們不妨整理一下思路,從整體上再分析一遍:
1) 第1行引入頭文件 stdio.h,這是編程中最常用的一個頭文件。頭文件不是必須要引入的,我們用到了 puts 函數(shù),所以才引入 stdio.h。例如下面的代碼完全正確:
?
- int main()
- {
- return 0;
- }
我們沒有調(diào)用任何函數(shù),所以不必引入頭文件。
2) 第2行開始定義主函數(shù) main。main 是程序的入口函數(shù),一個C程序必須有 main 函數(shù),而且只能有一個。
3) 第4行調(diào)用 puts 函數(shù)向顯示器輸出字符串。
4) 第5行是 main 函數(shù)的返回值。程序運行正確一般返回 0。
C語言代碼中的空白符
空格、制表符、換行符等統(tǒng)稱為空白符(space character),它們只用來占位,并沒有實際的內(nèi)容,也顯示不出具體的字符。
制表符分為水平制表符和垂直制表符,它們的 ASCII 編碼值分別是 9 和 11。
- 垂直制表符在現(xiàn)代計算機中基本不再使用了,也沒法在鍵盤上直接輸入,它已經(jīng)被換行符取代了。
- 水平制表符相當于四個空格,對于大部分編輯器,按下 Tab 鍵默認就是輸入一個水平制表符;如果你進行了個性化設(shè)置,按下 Tab 鍵也可能會輸入四個或者兩個空格。
對于編譯器,有的空白符會被忽略,有的卻不能。請看下面幾種 puts 的寫法:
#include<stdio.h> int main() {puts("C語言");puts("中文網(wǎng)");puts("C語言中文網(wǎng)");puts("C語言中文網(wǎng)");puts ("C語言中文網(wǎng)");puts ( "C語言中文網(wǎng)" ) ;return 0; }
運行結(jié)果:
?
看到輸出結(jié)果,說明代碼沒有錯誤,以上幾種 puts 的用法是正確的。puts
和()
之間、" "
和()
之間可以有任意的空白符,它們會被編譯器忽略,編譯器不認為它們是代碼的一部分,它們的存在只是在編輯器中呈現(xiàn)一定的格式,讓程序員閱讀方便。
需要注意的是,由" "
包圍起來的字符串中的空白符不會被忽略,它們會被原樣輸出到控制臺上;并且字符串中間不能換行,否則會產(chǎn)生編譯錯誤。請看下面的代碼:
#include<stdio.h> int main() {puts("C語 言 中文網(wǎng)");puts("C語言中文網(wǎng)");return 0; }
第 5~6 行代碼是錯誤的,字符串必須在一行內(nèi)結(jié)束,不能換行。把這兩行代碼刪除,運行結(jié)果為:
?
程序員要善于利用空白符:縮進(制表符)和換行可以讓代碼結(jié)構(gòu)更加清晰,空格可以讓代碼看起來不那么擁擠。專業(yè)的程序員同樣追求專業(yè)的代碼格式,大家在以后的學(xué)習(xí)中可以慢慢體會