c語言學習linux,c語言學習網站

本文目錄一覽:

想在LINUX下學習C語言,該如何開始?

一、工具篇

「公欲善其事,必先利其器」。編程是一門實踐性很強的工作,在你以後的學習或工作中,你將常常會與以下工具打交道, 下面列出學習C語言編程常常用到的軟件和工具。

1、操作系統

在UNIX或Linux系統中學習C很方便,所以在開始您的學習旅程前請先選擇一個UNIX或Linux操作系統,目前可供個人免費使用的UNIX或Linux系統有FreeBSD、RedHat Linux、SUSE Linux等,而且在安裝包中還提供很多實用的工具,如:gcc, make等。

如果您一直使用Windows,身邊又沒有多餘的機器安裝UNIX,則可以使用VMware,通過VMware安裝虛擬系統。

2、編譯工具

目前絕大多數Unix或Lnux系統都提供CC或GCC編譯器,最簡單的cc命令格式如下:

cc -o hello hello.c

在unix shell環境中敲入上面的代碼會將hello.c程序編譯成可執行文件hello。

3、make工具

如 GNU make、System V make 和 Berkeley make 是用來組織應用程序編譯過程的基本工具,但是每個 make 工具之間又有所不同。

大部分UNIX和Linux程序都是通過運行make來編譯的。

make工具會讀取一個包含指令的文件(這個文件的名字通常都是 makefile 或 Makefile,不過後文中我們統一稱之為 「makefile」),並執行各種操作來編譯程序。

4、調試工具

最簡單的調試工具:為你的程序添加打印語句,在你對程序的運行機制有了一定的了解後,你可以實用一些工具幫助你進行調試,當然你得學習一下這些工具得使用,如:dbx,gdb等。

還有一些內存工具可以幫你查找內存泄漏或緩衝區溢出等一些問題,如:memwatch,yamd等。

5、其他工具

1)vi或vim

Unix下文本編輯器。主要靠一堆命令來編輯文本文件,學Unix編程最好熟悉並熟練使用vi編輯器。

當然在實際工作中,你可能需要一個集成編碼環境或一個功能強大的圖形化編輯工具。

提供一個中文的vim在線手冊:

2)Secure shell/putty

一個支持ssh協議得客戶端工具,多數情況下用來連接linux系統。

二、書籍篇

「書是人類進步得階梯」。學習一門新的知識,當然要選擇幾本適合自己得書籍,下面介紹一些我自己學習C語言使用過的書籍:

1.《C primer plus》

推薦理由:適合作為入門書和基本函數查詢得參考資料。本書最新版為第五版,以ANSI C99為標準詳細介紹了C語言。

2.《The C programming_Language》

推薦理由:C語言之父得作品權威性毋庸置疑。雖然書籍出版時間比較老,好像也沒更新,不過仍不失為經典書籍,網上有這本書得英文電子版提供下載。

3.《C 專家編程》

推薦理由:本書可以幫助有一定經驗的C程序員成為C編程方面的專家,最關鍵的是本書寓教於樂,讓你充分享受編程的樂趣。

4.《C缺陷與陷阱》

推薦理由:書中所揭示的知識能幫助您繞過C語言自身得陷阱和缺陷,減少代碼中許多常見的Bug。

5.《unix環境高級編程》

推薦理由:既然是UNIX環境下C編程,就不得不說說UNIX編程書籍。

Stevens先生的《unix環境高級編程》是我竭力推薦的,也是我的案頭必備(如果對網絡編程有興趣的,可以學習一下Stevens先生的《UNIX網絡編程》兩卷,如果覺得還不過癮,可以再看看《TCP/IP詳解》三卷)。

6.《計算機編程藝術》

推薦理由:算法大師得嘔心瀝血之作。計划出版五卷書,目前好像已出版3卷。對算法有興趣得可以研究一下。

三、過程篇

1.學習C語法

語法的學習對於一個具有編程底子的來說,就很輕鬆了;即使你以前沒有學習過其他編程語言,我相信有2個星期,你也能輕鬆搞定。

需要注意的是,不要太糾纏於語言的細節,比如:運算符優先級與結合性的問題等。

2.學習C標準庫

ANSI C庫把函數分為不同的組,每個組都具有與之相關的頭文件。C語言標準庫相對於其他語言,比如C++,Java來說是非常短小精悍的,但首先應着重對以下庫進行學習:

ctype.h:字符處理

math.h:數學庫

stdio.h:標準I/O庫

stdlib.h:通用工具庫

string.h:字符串處理

time.h:時間和日期

如果想了解完成的ANSI C庫,你可以購買相關的書籍,這些書籍一般會詳細介紹每個函數的用戶和一些注意點;當然你也可以登陸 … amp;page=index.html獲取ANSI C庫詳細信息。

3.攻克C的難點

1)C語言聲明:

C語言的聲明確實讓我覺得恐怖,比較晦澀難懂,而且聲明的形式和使用的形式還類似。比如如下的聲明恐怕就連很多熟悉C多年的程序員也不是一眼就能看出來的:

char * const * (*next)();

那麼有沒有一種好的記憶方法或規則來搞清楚呢,好像沒有,如果有的話也不是這樣折磨人了。不過可以看看《C專家編程》第三章的內容,或許你會有所收穫。

也只能多學多練了,所謂熟能生巧嘛,希望這個問題不要在你的心靈上留下陰影。

2)數組與指針:

數組與指針的關係,在標準中並沒有作很詳細的規定,而且好多C入門的書籍在這個問題上並沒有給出很詳細的說明,所以會給人造成很多誤解。

對於這個問題,你可以參考《C缺陷與陷阱》4.5節和《C專家編程》第4,9,10章,相信你這裏面的內容搞透徹,以後就不會再被這個問題搞迷惑。

3)指針與內存:

如果你以後編寫規模較大的程序,你可能發現這個問題可能會是你最大的煩惱,而且可能會是你消耗最多調試時間的事項。

4)C版本的問題:

你得特別小心該問題,最好不要在你的程序中混合使用不同版本C的特性,否則會給你帶來很迷惑的問題。如果一定要用,你最好清楚自己在做什麼。

還有一些其他C中的難點和容易錯誤的地方,可以學習前人的一些經驗。以下是一個c FAQ的鏈接地址,相信在這篇文檔中有你需要的大部分問題的解決方法。

4. UNIX環境編程

學習了以上內容之後,我相信,你就可以進行unix環境編程了。不過你可能需要對操作系統理論有一點點的了解,這樣學起來會比較輕鬆一些。

Unix環境編程,你應該着重IO和進程兩大塊內容。

《Unix環境高級編程》中對Unix環境編程有着非常詳細且深入的論述,而且書中有大量實用性例子程序,不過可能得花上幾個月得時間,好好啃一啃了。

在紮實掌握以上內容,不代表你得C語言學習支路已經完成,相反,才剛剛開始。以後你需要用學到得知識去解決大量不同實際問題,在不斷得實踐過程中,你會近一步加深對C的理解。有了以上基礎之後,你會發現,在實踐過程中需要的其他知識,你會非常快速的掌握。

學C語言為什麼要用linux

先在windows系統下把C語言的基本知識學好,之後到linux系統下繼續深造。

當然,前提是你想進一步掌握更多的知識,否則,在windows系統下學點C語言就夠了,比如寫點簡單的小程序什麼的。

以下內容摘自《Linux C編程一站式學習》的前言:

為什麼要在Linux平台上學C語言?用Windows學C語言不好嗎?

用Windows還真的是學不好C語言。C語言是一種面向底層的編程語言,要寫好C程序,必須對操作系統的工作原理非常清楚,因為操作系統也是用C寫的,我們用C寫應用程序直接使用操作系統提供的接口。

Linux是一種開源的操作系統,你有任何疑問都可以從源代碼和文檔中找到答案,即使你看不懂源代碼,也找不到文檔,也很容易找個高手教你,各種郵件列表、新聞組和論壇上從來都不缺樂於助人的高手;而Windows是一種封閉的操作系統,除了微軟的員工別人都看不到它的源代碼,只能通過文檔去猜測它的工作原理,更糟糕的是,微軟向來喜歡藏着揶着,好用的功能留着自己用,而不會寫到文檔里公開。

本書的第一部分在Linux或Windows平台上學習都可以,但第二部分和第三部分介紹了很多Linux操作系統的原理以幫助讀者更深入地理解C語言,只能在Linux平台上學習。

Windows平台上的開發工具往往和各種集成開發環境(IDE,Integrated Development Environment)綁在一起,例如Visual Studio、Eclipse等。使用IDE確實很便捷,但IDE對於初學者絕對不是好東西。微軟喜歡宣揚傻瓜式編程的理念,告訴你用鼠標拖幾個控件,然後點一個按鈕就可以編譯出程序來,但是真正有用的程序有哪個是這麼拖出來的?很多從Windows平台入門學編程的人,編了好幾年程序,還是只知道編完程序點一個按鈕就可以跑了,把幾個源文件拖到一個項目里就可以編譯到一起了,如果有更複雜的需求他們就傻眼了,因為他們腦子裡只有按鈕、菜單的概念,根本沒有編譯器、鏈接器、Makefile的概念,甚至連命令行都沒用過,然而這些都是初學編程就應該建立起來的基本概念。另一方面,編譯器、鏈接器和C語言的語法有密切的關係,不了解編譯器、鏈接器的工作原理,也不可能真正掌握C的語法。所以,IDE並沒有幫助你學習,而是阻礙了你學習,本來要學好C編程只要把語法和編譯命令學會就行了,現在有了IDE,除了學會語法和編譯命令,你還得弄清楚編譯命令和IDE是怎麼集成的,這才算學明白了,本來就很複雜的學習任務被IDE搞得更加複雜了。Linux用戶的使用習慣從來都是以敲命令為主,以鼠標操作為輔,從學編程的第一天起就要敲命令編譯程序,等到你把這些基本概念都搞清楚了,你覺得哪個IDE好用你再去用,不過到那時候你可能會更喜歡vi或emacs而不是IDE了。

學C語言編程用Linux的哪個版本好

1、運維和分佈式開發可以選擇紅帽版本:紅帽版本主要分為了RHEL和centos,新手學習的時候如果不想太過於折騰,可以直接使用conetos,和RHEL在操作使用層面上完全沒有區別的,只是來源有所區分,分為了開源免費和企業收費兩種。國內運維所採用的教材一般都是redhat,所以都是基於RHEL的。細分版本的情況下,初學者可以安裝一個帶有桌面的centots6或者7,都可以。

2、具有生產力的工具可以選擇ubuntu版本:對於生產力版本最大的要求就是穩定了,ubuntu就是非常不錯的選擇,死機崩潰幾乎可以避免了。還可以選擇fedora版本,也是非常不錯的,也具有非常不錯的穩定性,不過整體來說還是ubuntu,各種生產力軟件都適用於它,不用浪費時間找軟件。而且還擁有海量的知識庫,互聯網上可以找到關於ubuntu的一切問題解決方案,非常適合初學者學習。

3、日常使用可以選擇deepin、manjaro版本:相對於來說更加省心一些。deepin對於從Windows遷移過來的用戶是非常不錯的選擇,高度兼容Windows風格和操作習慣的系統,可以適配Windows下的軟件,可以讓初學者快速融入其中。manjaro版本,擁有所有Linux桌面版本中最大的軟件倉庫,最多適配的桌面環境、最簡單易用的應用管理方式,如果作為家用的情況下,是非常適合的選擇。

怎麼用linux寫c語言

Linux正在成為開發人員的編程天堂,成為開源和免費操作系統。 Turbo C編譯器已經是一種編譯程序的舊方法,所以讓程序員轉向Linux以獲得新的編程環境。 在本文中,我們將解釋如何編寫,編譯和運行一個簡單的C程序。 這將成為您遷移到可以在Linux上編寫和執行的更複雜和有用的C程序的基礎。

我們在Ubuntu 18.04 LTS系統上運行了本文中提到的步驟和命令。

我們將使用Linux命令行工具Terminal,以編譯一個簡單的C程序。 要打開終端,您可以使用Ubuntu Dash或Ctrl + Alt + T快捷方式。

第1步:安裝build-essential軟件包

為了編譯和執行C程序,您需要在系統上安裝必要的軟件包。 在Linux終端中以root用戶身份輸入以下命令:

sudo apt-get install build-essential

系統會要求您輸入root用戶密碼; 安裝過程將在此之後開始。 請確保您已連接到互聯網。

第2步:編寫一個簡單的C程序

安裝必要的軟件包之後,讓我們編寫一個簡單的C程序。

打開Ubuntu的圖形文本編輯器,將以下示例程序寫入或複製到其中:

#includestdio.h

int main()

{

printf(“nA sample C program “);

return 0;

}

然後使用.c擴展名保存文件。 在這個例子中,我將我的C程序命名為linuxidc.c

或者,您可以通過gedit中的終端編寫C程序,如下所示:

gedit linuxidc.c

這將創建一個.c文件,您可以在其中編寫和保存程序。

第3步:使用gcc編譯C程序

在終端中,輸入以下命令以生成您編寫的程序的可執行版本:

句法:

$ gcc [programName].c -o programName

示例:

$ gcc linuxidc.c -o linuxidc

如何在linux學習C語言

window,linux C都是一樣的,如果你不用系統函數,主要在於環境,工具的使用,windows用vs2010這種,點一個按鈕編譯,linux一般都自己gcc編譯,熟悉linux常用命令,vi,emacs等編輯器,代碼還是 一樣寫,多用幾次就熟悉了。

原創文章,作者:ZPEQ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/144954.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ZPEQ的頭像ZPEQ
上一篇 2024-10-26 11:54
下一篇 2024-10-26 11:54

相關推薦

  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28
  • Python基礎語言

    Python作為一種高級編程語言擁有簡潔優雅的語法。在本文中,我們將從多個方面探究Python基礎語言的特點以及使用技巧。 一、數據類型 Python基礎數據類型包括整數、浮點數、…

    編程 2025-04-28

發表回復

登錄後才能評論