无码人妻丰满熟妇奶水区码,成年高潮网址,观看免费干B,欧美日韩深喉

C 語言簡單編程速成(c語言簡單的編程)

C 語言簡單編程速成(c語言簡單的編程)

我們將所有的 C 語言要素放置到一份易讀的備忘錄上。

? 來源:linux.cn ? 作者:Seth Kenlon ? 譯者:鄭 ?

(本文字數(shù):5500,閱讀時長大約:8 分鐘)

我們將所有的 C 語言要素放置到一份易讀的備忘錄上。

1972 年, 丹尼斯·里奇(Dennis Ritchie)任職于 貝爾實驗室(Bell Labs),在幾年前,他和他的團隊成員發(fā)明了 Unix 。在創(chuàng)建了一個經(jīng)久不衰的操作系統(tǒng)(至今仍在使用)之后,他需要一種好的方法來對這些 Unix 計算機編程,以便它們可用執(zhí)行新的任務(wù)。在現(xiàn)在看來,這很奇怪,但在當時,編程語言相對較少,F(xiàn)ortran、Lisp、 Algol 以及 B 語言都很流行,但是,對于貝爾實驗室的研究員們想要做的事情來說,它們還是遠遠不夠的。丹尼斯·里奇表現(xiàn)出一種后來被稱為程序員的主要特征的特質(zhì):創(chuàng)造了他自己的解決方案。他稱之為 C 語言,并且在近 50 年后,它仍在廣泛的使用。

為什么你應(yīng)該學習 C 語言

今天,有很多語言為程序員提供了比 C 語言更多的特性。最明顯的是 C 語言,這是一種以相當露骨的方式命名的語言,它構(gòu)建在 C 語言之上,創(chuàng)建了一種很好的面向?qū)ο笳Z言。不過,許多其它語言的存在是有充分理由的。計算機擅長一致的重復(fù),因此任何可預(yù)見的東西都可以構(gòu)建在編程語言中,對程序員來說這意味著更少的工作量。為什么在 C 語言中用一行語句就可以將一個 int 轉(zhuǎn)換為一個 long 時(long x = long(n);),還要在 C 語言用兩行語句呢?

然而,C 語言在今天仍然有用。

首先,C 語言是一種相當簡約和直接的語言。除了編程的基礎(chǔ)知識之外,并沒有很高級的概念,這很大程度上是因為 C 語言實際上就是現(xiàn)代編程語言的基礎(chǔ)之一。例如,C 語言的特性之一是數(shù)組,但是它不提供字典(除非你自己寫一個)。當你學習 C 語言時,你會學習編程的基礎(chǔ)組成部分,它可以幫助你認識到如今的編程語言的改進及其的精心設(shè)計。

因為 C 語言是一種最小化的編程語言,你的應(yīng)用程序很可能會獲得性能上的提升,這在其它許多編程語言中是看不到的。當你考慮你的代碼可以執(zhí)行多快的時候,很容易陷入錙銖必較的境地,因此,重要的是要問清楚你是否需要為某一特定任務(wù)提供更多的速度。與 Python 或 Java 相比,使用 C 語言,你在每行代碼中需要糾結(jié)的地方更少。C 語言程序運行很快。這是 Linux 內(nèi)核使用 C 語言編寫的一個很好的理由。

最后,C 語言很容易入門,特別是,如果你正在運行 Linux,就已經(jīng)能運行 C 語言代碼了,因為 Linux 系統(tǒng)包含 GNU C 庫(glibc)。為了編寫和構(gòu)建 C 語言程序,你需要做的全部工作就是安裝一個編譯器,打開一個文本編輯器,開始編碼。

開始學習 C 語言

如果你正在運行 Linux ,你可以使用你的軟件包管理器安裝一個 C 編譯器。在 Fedora 或 RHEL 上:

$ sudo dnf install gcc

在 Debian 及其衍生系統(tǒng)上:

$ sudo apt install build-essential

在 macOS 上,你可以 安裝 Homebrew ,并使用它來安裝 GCC :

$ brew install gcc

在 Windows 上, 你可以使用 MinGW 安裝一套最小的包含 GCC 的 GNU 實用程序集。

在 Linux 或 macOS 上驗證你已經(jīng)安裝的 GCC:

$ gcc --versiongcc (GCC) x.y.zCopyright (C) 20XX Free Software Foundation, Inc.

在 Windows 上,提供 EXE 文件的完整路徑:

PS> C:MinGWbingcc.exe --versiongcc.exe (MinGW.org GCC Build-2) x.y.zCopyright (C) 20XX Free Software Foundation, Inc.

C 語法

C 語言不是一種腳本語言。它是一種編譯型語言,這意味著它由 C 編譯器處理來產(chǎn)生一個二進制可執(zhí)行文件。這不同于腳本語言(如 Bash )或混合型語言(如 Python )。

在 C 語言中,你可以創(chuàng)建函數(shù)來執(zhí)行你希望做到的任務(wù)。默認情況下,執(zhí)行的是一個名為 main 的函數(shù)。

這里是一個使用 C 語言寫的簡單的 “hello world” 程序:

#include <stdio.h>int main() {  printf("Hello world");  return 0;}

第一行包含一個被稱為 stdio.h(標準輸入和輸出)的 頭文件,它基本上是自由使用的、非常初級的 C 語言代碼,你可以在你自己的程序中重復(fù)使用它。然后創(chuàng)建了一個由一條基本的輸出語句構(gòu)成的名為 main 的函數(shù)。保存這些文本到一個被稱為 hello.c 的文件中,然后使用 GCC 編譯它:

$ gcc hello.c --output hello

嘗試運行你的 C 語言程序:

$ ./helloHello world$

返回值

這是 Unix 哲學的一部分,一個函數(shù)在執(zhí)行后“返回”一些東西:在成功時不返回任何東西,在失敗時返回其它的一些東西(例如,一個錯誤信息)。這些返回的內(nèi)容通常使用數(shù)字(確切地說是整數(shù))表示:0 表示沒有錯誤,任何大于 0 的數(shù)字都表示一些不成功的狀態(tài)。

Unix 和 Linux 被設(shè)計成在運行成功時保持沉默是很明智的。這是為了讓你在執(zhí)行一系列命令時,假設(shè)沒有任何錯誤或警告會妨礙你的工作,從而可以始終為成功執(zhí)行做準備。類似地,在 C 語言中的函數(shù)在設(shè)計上也預(yù)期不出現(xiàn)錯誤。

你可以通過一個小的修改,讓你的程序看起來是失敗的,就可以看到這一點:

include <stdio.h>int main() {  printf("Hello world");  return 1;}

編譯它:

$ gcc hello.c --output failer

現(xiàn)在使用一個內(nèi)置的 Linux 測試方式來運行它。僅在成功時,&& 操作符才會執(zhí)行一個命令的第二部分。例如:

$ echo "success" && echo "it worked"successit worked

失敗時,|| 測試會執(zhí)行一個命令的第二部分。

$ ls blah || echo "it did not work"ls: cannot access 'blah': No such file or directoryit did not work

現(xiàn)在,嘗試你的程序,在成功時,它返回 0;而是返回 1:

$ ./failer && echo "it worked"String is: hello

這個程序成功地執(zhí)行了,但是沒有觸發(fā)第二個命令。

變量和類型

在一些語言中,你可以創(chuàng)建變量而不具體指定變量所包含的數(shù)據(jù)的類型。這些語言如此設(shè)計使得解釋器需要對一個變量運行一些測試來視圖發(fā)現(xiàn)變量是什么樣的數(shù)據(jù)類型。例如,var=1 定義了一個整型數(shù),當你創(chuàng)建一個表達式將 var 與某些東西相加時,Python 知道顯然它是一個整型數(shù)。它同樣知道當你連接 hello 和 world 時,單詞 world 是一個字符串。

C 語言不會為你做任何這些識別和調(diào)查;你必須自己定義你的變量類型。這里有幾種變量類型,包括整型(int),字符型(char),浮點型(float),布爾型(boolean)。

你可能也注意到這里沒有字符串類型。與 Python 和 Java 和 Lua 以及其它的編程語言不同,C 語言沒有字符串類型,而是將字符串看作一個字符數(shù)組。

這里是一些簡單的代碼,它建立了一個 char 數(shù)組變量,然后使用 printf 將數(shù)組變量和一段簡單的信息打印到你的屏幕上:

#include <stdio.h>int main() {   char var[6] = "hello";   printf("Your string is: %srn",var);}

你可能會注意到,這個代碼示例向一個由五個字母組成的單詞提供了六個字符的空間。這是因為在字符串的結(jié)尾有處一個隱藏的終止符,它占用了數(shù)組中的一個字節(jié)。你可以通過編譯和執(zhí)行代碼來運行它:

$ gcc hello.c --output hello$ ./hellohello

函數(shù)

和其它的編程語言一樣,C 函數(shù)也接受可選的參數(shù)。你可以通過定義你希望函數(shù)接受的數(shù)據(jù)類型,來將參數(shù)從一個函數(shù)傳遞到另一個函數(shù):

#include <stdio.h>int printmsg(char a[]) {   printf("String is: %srn",a);}int main() {   char a[6] = "hello";   printmsg(a);   return 0;}

簡單地將一個函數(shù)分解為兩個函數(shù)的這種方法并不是非常有用,但是它演示了默認運行 main 函數(shù)以及如何在函數(shù)之間傳遞數(shù)據(jù)。

條件語句

在真實的編程中,你通常希望你的代碼根據(jù)數(shù)據(jù)做出判斷。這是使用條件語句完成的,if 語句是其中最基礎(chǔ)的一個語句。

為了使這個示例程序更具動態(tài)性,你可以包含 string.h 頭文件,顧名思義,它包含用于檢查字符串的代碼。嘗試使用來自 string.h 文件中的 strlen 函數(shù)測試傳遞給 printmsg 函數(shù)的字符串是否大于 0:

#include <stdio.h>#include <string.h>int printmsg(char a[]) {  size_t len = strlen(a);  if ( len > 0) {    printf("String is: %srn",a);  }}int main() {   char a[6] = "hello";   printmsg(a);   return 1;}

正如在這個示例中所實現(xiàn)的,該條件永遠都不會是非真的,因為所提供的字符串總是 hello,它的長度總是大于 0。這個不夠認真的重新實現(xiàn)的 echo 命令的最后一點要做是接受來自用戶的輸入。

命令參數(shù)

stdio.h 文件包含的代碼在每次程序啟動時提供了兩個參數(shù): 一個是命令中包含多少項的計數(shù)(argc),一個是包含每個項的數(shù)組(argv)。例如, 假設(shè)你發(fā)出這個虛構(gòu)的命令:

$ foo -i bar

argc 是 3,argv 的內(nèi)容是:

  • argv[0] = foo
  • argv[1] = -i
  • argv[2] = bar

你可以修改示例 C 語言程序來以字符串方式接受 argv[2],而不是默認的 hello 嗎?

命令式編程語言

C 語言是一種命令式編程語言。它不是面向?qū)ο蟮模矝]有類結(jié)構(gòu)。使用 C 語言的經(jīng)驗可以教你很多關(guān)于如何處理數(shù)據(jù),以及如何更好地管理你的代碼運行時生成的數(shù)據(jù)。多使用 C 語言,你最后能夠編寫出其它語言(例如 Python 和 Lua)可以使用的庫。

想要了解更多關(guān)于 C 的知識,你需要使用它。在 /usr/include/ 中查找有用的 C 語言頭文件,并且看看你可以做什么小任務(wù)來使 C 語言對你有用。在學習的過程中,使用來自 FreeDOS 的 Jim Hall 編寫的 C 語言忘備錄 。它在一張雙面紙忘備錄上放置了所有的基本要素,所以在你練習時,可以立即訪問 C 語言語法的所有要素。


via: opensource.com

作者: Seth Kenlon 選題: lujun9972 譯者: robsean 校對: wxy

本文由 LCTT 原創(chuàng)編譯, Linux中國 榮譽推出

點擊“了解更多”可訪問文內(nèi)鏈接

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。

(0)
上一篇 2023年4月20日 上午10:20
下一篇 2023年4月20日 上午10:36

相關(guān)推薦

  • 科研項目經(jīng)費預(yù)算實例

    科研項目經(jīng)費預(yù)算實例 科研項目經(jīng)費預(yù)算是科研項目的重要組成部分,用于支持研究所需的資金、設(shè)備、材料、人員等。一個好的科研項目預(yù)算應(yīng)該能夠有效地控制成本,保證研究的質(zhì)量,并為未來的成…

    科研百科 2025年3月27日
    6
  • 醫(yī)院黨建引領(lǐng)業(yè)務(wù)工作作用發(fā)揮不明顯的原因

    醫(yī)院黨建引領(lǐng)業(yè)務(wù)工作作用發(fā)揮不明顯的原因 醫(yī)院黨建是醫(yī)院工作的重要組成部分,它不僅僅是組織黨員學習、加強黨組織建設(shè),更是推動醫(yī)院各項業(yè)務(wù)工作的開展,提高醫(yī)院軟實力和競爭力的重要手段…

    科研百科 2024年10月9日
    34
  • 點獅企業(yè)辦公系統(tǒng)設(shè)計源碼

    點獅企業(yè)辦公系統(tǒng)設(shè)計源碼:一個現(xiàn)代化的企業(yè)辦公系統(tǒng) 點獅企業(yè)是一家在全球范圍內(nèi)享有盛譽的企業(yè),其辦公系統(tǒng)的設(shè)計和質(zhì)量都備受好評。本文將介紹點獅企業(yè)辦公系統(tǒng)的設(shè)計源碼,以展示其現(xiàn)代化…

    科研百科 2024年10月19日
    1
  • threejs vue3

    Three.js 和 Vue.js 是當前最受歡迎的 JavaScript 框架之一,它們都是用于構(gòu)建 3D 應(yīng)用程序的優(yōu)秀工具。本文將介紹如何使用 Three.js 和 Vue….

    科研百科 2024年9月30日
    6
  • 沙坪綜合項目管理系統(tǒng)

    沙坪綜合項目管理系統(tǒng) 隨著現(xiàn)代項目管理的不斷進步,沙坪綜合項目管理系統(tǒng)已經(jīng)成為了項目管理中不可或缺的一部分。作為一個高效的項目管理工具,沙坪綜合項目管理系統(tǒng)可以幫助企業(yè)更好地管理項…

    科研百科 2025年6月11日
    0
  • 科研項目認定書

    科研項目認定書 尊敬的評審專家: 本認定書是為了證明本科研項目的真實性和可行性而編寫的。 項目名稱:XXX 項目背景: XXX 是一項針對 XXX 領(lǐng)域的科研項目,該領(lǐng)域的市場需求…

    科研百科 2025年3月5日
    5
  • 信息系統(tǒng)項目管理實戰(zhàn)

    信息系統(tǒng)項目管理實戰(zhàn) 隨著信息技術(shù)的不斷發(fā)展,信息系統(tǒng)項目管理已經(jīng)成為了現(xiàn)代企業(yè)項目管理中不可或缺的一部分。一個好的信息系統(tǒng)項目管理不僅能夠提高企業(yè)的信息技術(shù)水平,還能夠幫助企業(yè)更…

    科研百科 2025年1月15日
    4
  • 科研項目經(jīng)費多久到位

    科研項目經(jīng)費多久到位 科研項目經(jīng)費到位是科研項目能否成功的關(guān)鍵之一。如果經(jīng)費不足,項目可能會面臨資金短缺、進度延誤、質(zhì)量問題等風險。因此,及時獲取足夠的經(jīng)費支持是非常重要的。然而,…

    科研百科 2025年3月4日
    8
  • 上海金橋有哪些聯(lián)合辦公(上海金橋有哪些聯(lián)合辦公公司)

    金橋鎮(zhèn)隸屬于上海浦東新區(qū),地處浦東新區(qū)中部,南臨張江高科技園區(qū),北依高行鎮(zhèn),西與花木街道相連,東接高東鎮(zhèn),是國家級開發(fā)區(qū)——金橋出口加工區(qū)的主要開發(fā)區(qū)域。那么在金橋要怎么找到合適的…

    2022年8月15日
    576
  • 學籍管理系統(tǒng)項目范圍說明書IT

    學籍管理系統(tǒng)項目范圍說明書IT 項目背景 隨著經(jīng)濟的發(fā)展和社會的進步,學校已經(jīng)成為人們獲取知識和技能的主要場所之一。同時,學校的管理也需要通過信息技術(shù)手段來提高效率和精度。因此,開…

    科研百科 2025年1月26日
    6
久热最新在线观看视频| 欧美黄3级网站欧美| 亚洲婷婷五月天激情视频| 日本素人无码| 国产99日本高清| 台北县| 夜夜爽狠狠天天婷婷| 国产一区欧美三区在线| 国产欧美中文字幕系列150p| 欧美韩国偷拍不卡福利中文在线| 亚洲最大伦理网站| 涩爱av色老久久精品偷偷鲁| 日本免费一区二区三区不卡区| Av伦理在线日韩| 免费无码精品视频一区二区三区| 高潮 国产 免费视频| 极品风骚人妻被舔夜| 国产香蕉成人三区69| 又大又黄又长| 中文字幕久久88| 久久人妻侵犯电影| 午夜黄色羞羞一区二区| 亚洲a√久久| 国产丝袜人妖| 午夜福利 2| 玉屏| 精久久视频金品| 麻豆ab在线一区二区| 偷拍亚洲中文字幕| 日韩欧美高清成人电影| 国内欧美自拍偷拍二区三区| 久久久久久久久久久久久木下凛凛子| 亚洲天堂在线成人| 天干天干天啪啪夜爽爽小说下载| 封满人妻视频一二三区| AV人妖一区二区| 欧美性极品视频| www.黄片免费| 久久精品伊人一区二区| 这些无码视频一区| 中国在线高清免费观看主播|