C語言入門參考(二)

来源:http://www.cnblogs.com/dugulin/archive/2017/08/17/7384368.html
-Advertisement-
Play Games

二、初識C語言 編程語言有很多種,主要分為三大類,分別是機器語言、彙編語言、高級語言。電腦只能識別和理解二進位代碼,也就是0和1。想一下,用機器語言來開發,我們得記住多少用0和1兩個數字所組成的指令代碼以及其代碼涵義?顯然,這是不合理的,這樣的編程枯燥且繁瑣費力,也容易出錯。彙編語言應運而生,彙編 ...


二、初識C語言

       編程語言有很多種,主要分為三大類,分別是機器語言、彙編語言、高級語言。電腦只能識別和理解二進位代碼,也就是0和1。想一下,用機器語言來開發,我們得記住多少用0和1兩個數字所組成的指令代碼以及其代碼涵義?顯然,這是不合理的,這樣的編程枯燥且繁瑣費力,也容易出錯。彙編語言應運而生,彙編語言用助記符代替機器指令,但助記符量大難記,而且也枯澀的很。所以,我們的前輩又開發出了高級語言,高級語言基於自然語言,大大降低了程式員學習的成本,使得編程得以普及。我們現在開發常用的是高級語言如C、C++、JAVA等。但有失必有得,高級語言雖然降低了學習成本,但也失去硬體控制的能力,執行效率和機器語言、彙編語言相比差的不是一星半點。本教程所教授的是C語言。C語言是一門古老而又強大的語言,其起源於1972年,由美國貝爾實驗室丹尼斯-里奇和肯-湯普遜在開發UNIX操作系統時在B語言基礎上設計而來,距今已有45年的歷史,目前最新標準是C11標準。C語言兼具高級語言和低級語言的特點,在容易學習的同時依然具有低級語言高效,可直接訪問物理地址,操作硬體的強大特性。而且很多高級語言都是由C語言擴展或衍生而來。學會了C語言,我們在學習其它語言時會學的更快,由於其接近底層的特性我們在學習數據結構等高深的知識也會起到很大幫助。C語言可以比喻為一門非常強大的內功心法,學會它可以做到一法通萬法。這也是它至今不衰的原因。說了這麼多C語言的優點,現在來說說它的缺點。C語言最大的優點也是它最大的缺點——自由度大。C語言程式設計要求不嚴格,程式設計的自由度比較大。實在的說法,一浪就容易翻。C語言因其程式設計自由的特點,出現的錯誤也往往難以察覺,尤其是涉及指針的錯誤,讀者要特別註意。

       C語言現今主要用於系統內核,硬體驅動,單片機嵌入式等底層的開發。關於C語言我們就介紹到這裡,下麵正式開啟編程之道。

       目前的主流操作系統有windows(使用人數最多)、Mac OS X(蘋果電腦的操作系統) 、UNIX和Linux(Linux是類UNIX系統)。在本教程,則著重講在windows環境下的編程。

前面講過電腦能理解和識別二進位代碼,然而C語言代碼電腦並不能直接識別,所以這就需要一個特殊的工具來給電腦當“翻譯官”——編譯器,將C語言代碼編譯成可執行文件(.exe)。將C語言代碼轉換成二進位指令的過程稱為“編譯”。常用的編譯器有GCC、cl.exe、LLVM。windows環境下,我們一般都是用cl.exe,編譯器只負責編譯,我們寫代碼則需要用到另一個工具“文本編輯器”,筆者使用的是notepad++。這裡也推薦一些優秀的文本編輯器Sublime Text、vim讀者可自行選擇喜歡的文本編輯器。看到這裡可能有些讀者感覺要用到的工具很多吧?其實不然,我們一般在開發軟體時都會用到一個工具“IDE(集成開發環境)”,IDE裡面集成了編譯器、文本編輯器、調試器等一系列開發時會使用到的工具。筆者是用的是微軟的Visual Studio2013版,若不喜歡喜歡Visual Studio,臃腫(安裝包大,占硬碟)的讀者,可以使用DEV C++、C-Free5、VC++6.0等輕量級IDE,目前電腦二級C語言考試則用VC6.0的多。

文中若有錯誤歡迎指正,未經博主允許不得轉載(未完待續......)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 之前就瞭解到了裝飾器, 但是就會點皮毛, 而且對其調用方式感到迷茫,正好現在的項目我想優化,就想到了用裝飾器, 因此深入研究了下裝飾器.先看下代碼: 我的疑惑就是明明return 的是一個函數名,按道理來講,返回的就是一個函數地址啊!我理解有問題?隨後上網查資料,又是閉包....但是我個人對它不感冒 ...
  • 簡介 RabbitMQ是流行的開源消息隊列系統,用erlang語言開發。RabbitMQ是AMQP(高級消息隊列協議)的標準實現。 安裝 首先安裝erlang環境。 官網:http://www.erlang.org/ Windows版下載地址:http://erlang.org/download/o... ...
  • 0x00: 首先聲明一個全局變數。 然後,在滑動處罰ajax請求的代碼處,做一個判斷。 if (control) { $('.get_more').click(); }; 這個地方是獲取數據的函數以及ajax請求的函數 0x01以上原理: 首先聲明一個全局變數設置為true,在觸發滑動時間的時候,判 ...
  • 使用過HttpServlet的都應該用過其doGet和doPost方法,接下來看看DispatcherServlet對這兩個方法的實現(源碼在DispatcherServlet的父類FrameworkServlet中): 方法里又將邏輯交由processRequest(request, respon ...
  • 題目描述 Copy從盧牛那裡聽說在一片叫yz的神的領域埋藏著不少寶藏,於是Copy來到了這個被劃分為個區域的神地。盧牛告訴了Copy這裡共有個寶藏,分別放在第Pi個(1<=Pi<=N)區域。Copy還得知了每個區域之間的距離。現在Copy從1號區域出發,要獲得所有的寶藏併到n號區域離開。Copy很懶 ...
  • 想挖個坑督促自己練技術,有時候想到一個項目,大概想了一些要實現的功能,怎麼實現。現在覺得自己差不多能完成QQ空間的主要功能了。準備立個牌坊,寫一個類似功能的網站。並且把進度放到這裡來。 初步計劃實現以下功能 1、用戶註冊、登錄、信息修改; 2、用戶進行好友關註、推送好用動態; 3、發表日誌、評論和評 ...
  • 目錄 題目描述 思路 程式(C++版&java版) 詳解 題目描述: 思路: 這道題實在是太經典,一道題裡面考察了幾個知識點: 1.鏈表是否有環的判斷 2.鏈表若有環,要找到環的入口節點 3.兩個鏈表的多種情況分析 另外,左老師講得實在是太贊了. 程式(詳解在後面): 詳解 先把幾種情況羅列一下: ...
  • 附圖一張: 今天閑來無事做,就想起同程SRC有一個公開漏洞模塊。然而閑的蛋疼的我就有了對其寫一個爬蟲將漏洞列表爬下來的衝動。有兩個版本,一個是單線程的。另一個是多線程的版本。 單線程版本: 多線程版本: 多線程使用的是Threading+Queue #coding=utf-8 import requ ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...