當前位置:首頁 » 編程語言 » googlec語言編程規范
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

googlec語言編程規范

發布時間: 2022-09-13 21:54:34

1. c語言編碼規范

關於編碼的規范,google為規范開源軟體,開放了程序編碼的文檔。
網頁的鏈接不知能否發上來,如果不能,自己查 Google C++ 風格指南,有中文版。http://yangyubo.com/google-cpp-styleguide/

2. 什麼是Python, C, Perl, and LISP

Python(發音:[ 'paiθ(ə)n; (US) 'paiθɔn ]),是一種面向對象的解釋性的計算機程序設計語言,也是一種功能強大而完善的通用型語言,已經具有十多年的發展歷史,成熟且穩定。Python 具有腳本語言中最豐富和強大的類庫,足以支持絕大多數日常應用。

這種語言具有非常簡捷而清晰的語法特點,適合完成各種高層任務,幾乎可以在所有的操作系統中運行。

目前,基於這種語言的相關技術正在飛速的發展,用戶數量急劇擴大,相關的資源非常多。

Python的Hello World程序

下面是一個在標准輸出設備上輸出Hello World的簡單程序,這種程序通常作為開始學習編程語言時的第一個程序:

#!/usr/bin/env python

print "Hello, world!"

Python的歷史

Python的創始人為Guido van Rossum。1989年聖誕節期間,在阿姆斯特丹,Guido為了打發聖誕節的無趣,決心開發一個新的腳本解釋程序,做為 ABC 語言的一種繼承。之所以選中 Python(大蟒蛇的意思)作為程序的名字,是因為他是一個Monty Python的飛行馬戲團的愛好者。

ABC是由Guido參加設計的一種教學語言。就Guido本人看來,ABC 這種語言非常優美和強大,是專門為非專業程序員設計的。但是ABC語言並沒有成功,究其原因,Guido 認為是非開放造成的。Guido 決心在 Python 中避免這一錯誤(的確如此,Python 與其它的語言如C、C++和Java結合的非常好)。同時,他還想實現在 ABC 中閃現過但未曾實現的東西。

就這樣,Python在Guido手中誕生了。實際上,第一個實現是在Mac機上。可以說,Python是從ABC發展起來,主要受到了Mola-3(另一種相當優美且強大的語言,為小型團體所設計的)的影響。並且結合了Unix shell和C的習慣。

Python在編程語言中的定位

雖然 Python 可能被粗略地分類為"腳本語言(scripting language)", 實際上一些大規模軟體開發計劃例如 Zope, Mnet 及 BitTorrent. Google也廣泛地使用它。 Python 的支持者較喜歡稱它為一種高階動態編程語言 , 原因是"腳本語言" 泛指單用作簡單編程任務如 shell scripts ,而Python不能與JavaScript等只能處理簡單任務的編程語言相提並論。

Python的特色

可擴充性可說是Python作為一種編程語言的特色。新的內置模塊(mole)可以用C 或 C++寫成。而我們也可為現成的模塊加上Python的介面。Python可以使用戶避免過分的語法的羈絆而將精力主要集中到所要實現的程序任務上。

Python也被稱為是一門清晰的語言。因為它的作者在設計它的時候,總的指導思想是,對於一個特定的問題,只要有一種最好的方法來解決就好了。這在由Tim Peters寫的python格言(稱為The Zen of Python)裡面表述為:

There should be one-- and preferably only one --obvious way to do it.

有意思的是,這正好和Perl語言(另一種功能類似的高級動態語言)的中心思想TMTOWTDI(There's More Than One Way To Do It)完全相反。這似乎是人們常把Perl和Python互相比較的重要原因。

Python語言是一種清晰的語言的另一個意思是,它的作者有意的設計限制性很強的語法,使得不好的編程習慣(例如if語句的下一行不向右縮進)都不能通過編譯。這樣有意的強製程序員養成良好的編程習慣。其中很重要的一項就是Python的縮進規則。

例如if語句:

if age<21:

print "You cannot buy wine!\n"

print "But you can buy chewing gum.\n"

print "this is outside if\n"

一個和其他大多數語言(如C)的區別就是,一個模塊的界限,完全是由每行的首字元在這一行的位置來決定的(而C語言是用一對花括弧{}來明確的定出模塊的邊界的,與字元的位置毫無關系)。這一點曾經引起過爭議。因為自從C這類的語言誕生後,語言的語法含義與字元的排列方式分離開來,曾經被認為是一種程序語言的進步。不過不可否認的是,通過強製程序員們縮進(包括if,for和函數定義等所有需要使用模塊的地方),Python確實使得程序更加清晰和美觀。

另外Python在其他部分的設計上也堅持了清晰劃一的風格,這使得Python稱為一門易讀性、易維護性好,並且被大量用戶所歡迎的、用途廣泛的語言。

Python的局限
雖然Python是一個非常成功的語言,但是也有必要明白它的局限性。
1. 運行效率低下
目前為止,Python可以說是所有主流腳本語言中速度最慢的。這與其腳本引擎的設計思路有關。
如果你的應用對於速度有著較高的要求,就要考慮Python是否能滿足需要。不過這一點可以通
過使用C編寫關鍵模塊,然後由Python調用的方式加以部分解決。
2. 多線程支持欠佳
Python支持多線程,但是其運行效率也不高。
3. 獨特的語法
這也許不應該被稱為局限,但是它用縮進來區分語句關系的方式還是給很多初學者帶來了困惑。
即便是很有經驗的Python程序員,也可能陷入陷阱當中。最常見的情況是tab和空格的混用會導
致錯誤,而這是用肉眼無法分別的。
4. 無類型
作為一種動態語言,隨時隨地創建和使用變數是Python給我們帶來的巨大的便利。但是它也會
使得程序不嚴謹,某些錯誤只有在運行中才可能出現。所以,使用Python編程的時候,要對類
型做到心裡有數。這也使得Python的IDE工具無法提供便利的自動完成等功能。

Python的前景
Python在編程領域的佔有率一直處於穩步上升之中,根據最新的數據,Python排名第七。前六名分別是Java,
C,VB,C++,PHP和Perl. 作為一個很年輕的語言,Python的位置已經相當令人振奮了。隨著微軟將Python納入
.Net 平台,相信Python的將來會更加強勁發展。Python 很可能會成為.Net平台快速開發的主流語言。
欲了解這方面情況,請參考Iron Python的相關信息.
著名的搜索引擎 Google 也大量使用Python。

Python的應用

Zope-應用伺服器

Plone-內容管理系統

Django-鼓勵快速開發的web framework

Twisted - Python Network Application Framework Python的網路應用程序框架

TurboGears - 另一個Web應用快速開發框架

Bit Torrent - 著名的BT下載工具

2006年的Google編程大賽已經將Python作為參賽語言之一

C

n.

1. 英語字母中的第三個字母,小寫為c

2. (用大寫C)丙等(成績)

c

KK: []

DJ: []

n.

1. 英語字母的第三個字母

2. (用大寫)丙等(成績)

音符之一

物理上C表電容

C語言簡介

作者:歐索軟體 文章來源:本站原創 點擊數:179 更新時間:2005-11-17

C語言是目前世界上流行、使用最廣泛的高級程序設計語言之一。

C語言對操作系統和系統使用程序以及需要對硬體進行操作的場合,用C語言明顯優於其它高級語言,許多大型應用軟體都是用C語言編寫的。

C語言具有繪圖能力強,可移植性,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫,它是數值計算的高級語言。

常用編譯軟體有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++, Borland C++ Builder,Turbo C,等等......

一、C語言的發展歷史

C語言的發展頗為有趣。它的原型ALGOL 60語言。

1963年,劍橋大學將ALGOL 60語言發展成為CPL(Combined Programming Language)語言。

1967年,劍橋大學的Matin Richards 對CPL語言進行了簡化,於是產生了BCPL語言。

1970年,美國貝爾實驗室的Ken Thompson將BCPL進行了修改,並為它起了一個有趣的名字「B語言」。意思是將CPL語言煮干,提煉出它的精華。並且他用B語言寫了第一個UNIX操作系統。

而在1973年,B語言也給人「煮」了一下,美國貝爾實驗室的D.M.RITCHIE在B語言的基礎上最終設計出了一種新的語言,他取了BGPL的第二個字母作為這種語言的名字,這就是C語言。

為了使UNIX操作系統推廣,1977年Dennis M.Ritchie 發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》。

1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,從而使C語言成為目前世界上流行最廣泛的高級程序設計語言。

1988年,隨著微型計算機的日益普及, 出現了許多C語言版本。由於沒有統一的標准,使得這些C語言之間出現了一些不一致的地方。為了改變這種情況,美國國家標准研究所(ANSI)為C語言制定了一套ANSI標准,

成為現行的C語言標准 3.C語言的主要特點 。C語言發展迅速, 而且成為最受歡迎的語言之一, 主要因為它具有強大的功能。許多著名的系統軟體, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語言編寫的。用C語言加上一些匯編語言子程序, 就更能顯示C語言的優勢了,象PC- DOS 、WORDSTAR等就是用這種方法編寫的。

二、C語言的特點

1. 簡潔緊湊、靈活方便

C語言一共只有32個關鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結構和語句與低級語言的實用性結合起來。 C 語言可以象匯編語言一樣對位、位元組和地址進行操作, 而這三者是計算機最基本的工作單元。

2. 運算符豐富

C的運算符包含的范圍很廣泛,共有13種34個運算符。C語言把括弧、賦值、強制類型轉換等都作為運算符處理。從而使C的運算類型極其豐富表達式類型多樣化,靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。

3. 數據結構豐富

C的數據類型有:整型、實型、字元型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種復雜的數據類型的運算。並引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能, 支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。

4. C是結構式語言

結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰, 便於使用、維護以及調試。C語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。

5. C語法限制不太嚴格、程序設計自由度大

一般的高級語言語法檢查比較嚴,能夠檢查出幾乎所有的語法錯誤。而C語言允許程序編寫者有較大的自由度。

6. C語言允許直接訪問物理地址,可以直接對硬體進行操作

因此既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元,可以用來寫系統軟體。

7. C語言程序生成代碼質量高,程序執行效率高

一般只比匯編程序生成的目標代碼效率低10へ20%。

8. C語言適用范圍大,可移植性好

C語言有一個突出的優點就是適合於多種操作系統, 如DOS、UNIX,也適用於多種機型

三.C語言的標准

目前主要的C語言規范有c89(c90), c95(94)和c99。C89是最早的C語言規范,於89年提出,90年先由美國國家標准局推出ANSI版本,後來被接納為ISO國際標准 (ISO/IEC 9899:1990),因而有時也稱為c90。 但在94和96年分別對c90進行了兩次錯誤修正,gcc支持的是修正後的c89(90)版本的C語言規范。在95年提出過對90版規范的修訂案,稱為C95或者AMD1。gcc也支持c95規范。最新的一次C規范修訂在99年制定(ISO/IEC 9899:1999),即常稱的C99規范。在2001年對C99的錯誤進行了修正,gcc支持的修正後的c99規范,但是到目前為止,gcc還沒有完成對c99規范的完全支持。

關於C99標準的一些介紹可以參看下面的網址:

http://www.chinaaspx.com/archive/develop/14050.htm
在籃球場上c代表中鋒
中鋒(Center)是一個球隊的中心人物,憑借其強壯、高大的身體,無論進攻還是防守,他們都是球隊的樞鈕,故名之為中鋒。

作為禁區內的「擎天柱」,搶籃板球是中鋒必不可少的能力。此外,封堵阻攻、蓋帽也是中鋒必備的能力。由於本隊進攻時自己常處在禁區中央的樞紐位置,所以中鋒應該具有不錯的導球能力,能將球往較合適的位置輸送,助攻隊友得分。以上三項,是中鋒應具備的基礎技能。當然,得分也是中鋒應盡的職責,他們是主要的內線得分者。中鋒的命中率應該比大前鋒更高一些。

一名好的中鋒必須多才多藝,不但要有足夠的得分技巧用於進攻得分,防守時還要能成為球隊的最後一道屏障,除了守好自己盯防的球員,中鋒還要能夠協同協同和及時為隊友的防守補位。

現代籃球打法中有一種新的中鋒戰術,就是所謂的「外線中鋒」。此種中鋒需要在進攻時主要到外線投籃得分,而少做禁區內的進攻。由於用其他球員防守身材上差異太大、效果不佳,因此防守方只能讓本隊中鋒也到外線去盯防對手。如此一來,進攻方就可以利用對方中鋒不在禁區的機會,讓本隊能力強的前鋒或後衛隊員瘋狂得分。當然,「外線中鋒」只適用於進攻,防守時與一般中鋒的打法無異。

Perl(Practical Extraction and Report Language)是一種腳本語言。

Perl最初的設計者為拉里·沃爾(Larry Wall),它於1987年12月18日發表。Perl借取了C、sed、awk、shell scripting以及很多其他程序語言的特性。

Perl的正式網站是 www.perl.org。

Perl的解釋程序是開放源碼的免費軟體,使用Perl不必擔心費用。Perl能在絕大多數操作系統運行,可以方便地向不同操作系統遷移。

Perl擅長從文本文件里提取數據並處理、輸出(這也是它名字的來由),並且提供模塊滿足各種專門的功能(例如CGI、資料庫)。

Perl目前最廣泛的應用包括:操作系統管理,網路程序(Perl基本成為了CGI的代名詞),DNA分析。

LISP
在只給定幾個簡單的操作符和一個表示函數的記號的基礎上, 如何構造出一個完整的編程語言. 麥卡錫稱這種語言為Lisp, 意為List Processing, 因為他的主要思想之一是用一種簡單的數據結構表(list)來代表代碼和數據.

http://daiyuwen.freeshell.org/gb/rol/roots_of_lisp.html

3. 谷歌瀏覽器是用什麼語言開發的

使用的C++語言

C++是在C語言的基礎上開發的一種通用編程語言,應用廣泛。C++支持多種編程範式 --面向對象編程、泛型編程和過程化編程。最新正式標准C++14於2014年8月18日公布。 其編程領域眾廣,常用於系統開發,引擎開發等應用領域,是至今為止最受廣大程序員受用的最強大編程語言之一,支持類:類、封裝、重載等特性!

4. Peter Norvig,Google研究總監。說「至少學6種程序語言「,學過c語言之後,想學第二門語言,哪門比較合適

你想幹啥吧,想做應用軟體就學java,想做後台或者演算法底層相關的就學c++,想做蘋果的東西就學object-c。
你要是還有很多時間學習就先學c++,這個會了java自然就會了,object-c也就很好學了。。。
c/c++是一脈相承的東西,這兩樣基本上是做軟體的必學的內容

5. c語言編程框架

c語言與c++和java還是有區別的,c更底層些,能描述的計算機邏輯更多,其實並沒什麼框架,所謂框架只是提供的一個方便點的開發環境,就像java中的jsp,關鍵是他的基本語法,一定要多練。

1、1993年出現的《Object-oriented Programming with ANSI-C》,可能是這方面資料的鼻祖吧?
下載地址:http://www.planetpdf.com/codecuts/pdfs/ooc.pdf
2、這里也有一個參考網址:
http://www.eventhelix.com/RealtimeMantra/basics/object_oriented_programming_in_c.htm
3、Google或者網路一下,還可以找到不少相關資料。

6. c語言打樁是什麼意思怎麼打樁

C語言打樁的意思是介入,插入,干預的意思。

打樁有三種方法,第一是google的cmockery框架實現。

第二是利用C編譯器預編譯的特點,通過宏定義實現。

第三是修改函數內存地址,通過Jump指令跳轉到stub函數。

C語言是一門面向過程的計算機編程語言,與C++、C#、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

7. C語言怎麼學

淺談C語言學習方法
本人是一名windows程序寫作員,使用的語言是C語言.其他語言了解一點點,但並不擅長.可能對於初學者來說,首先就是選擇一門程序設計語言.當然,今天我將要說的不是這方面.每種語言都有它所擅長的領域與層面.當然對於其他非C語言我是一名門外汗,我也不會站在C語言的立場去談論其他任何一門語言.好了,在開始進入正題之前,我想談談個人對C的一些看法:

C語言是一種早期的計算機語言,最初誕生目的是為了提供一種基於UNIX系統的工作語言.但是,後來卻被越來越多的人發現它的優點與潛力.C本身比較接近底層,適合開發系統軟體甚至是操作系統.我個人也認為它是界於高級語言與匯編語言之間的中級語言.C語言是一門結構化語言(我認為主要是指它的控制結構如:if if-else while for等等).C程序設計上有提到"自頂向下,逐步深入".以函數為原子功能模塊.對於大型的程序來說模塊化是很重要的,有一句話說的很好"優質的程序首先就是便與人們之間的相互討論與交流,其次才是執行效率".當然我個人認為任何一名程序寫作者,都應該養成一種特定的思維方式,以程序的思維方式來思考程序的實現.前提就是要足夠的來了解計算機底層技術.要不我想就連學習都是很困難的,凡事都是一個思路的問題嘛.標準的來衡量,C應該算是高級語言陣營的一份子.可很多有C語言開發經驗的程序寫作者.通常親切的稱C為界於底級語言與高級語言之間的中級計算機語言.當然不是因為C比高級語言要差,之所以這么認為是因為C既具有高級語言的結構化與可理解性又具有低級語言的高效率.同時C的移植性也是非常不錯的,大家應該知道,越是接近硬體,接近底層的語言就越加的依賴硬體環境,也就是我們所說的設備相關性.C這一點做的是非常棒的.說了這些,在從另一個角度去分析C語言.當然每種語言都有它自身的優缺點,C也一樣.比如在現在高級語言與頂層技術的角度來看的話,C最大的缺陷就是Data與演算法的分離.舉一個例子: 對於一個擁有幾千行甚至上萬行Code的程序來說,如果修改Data,比如我在Structure中增加一個欄位,可能為此我的整個程序都要改動,這使得程序的可重用性大大降低.開發周期也大大的延長.但是在底層的角度來看這也正是C的優點.我為什麼要這么說呢?我個人認為在求解與實現一個小問題的時候,我們可以寫出一個通用的模塊處理不同的Data.當然比如某些經常用到的,基於數據結構的一些常用演算法我們可以寫出來在開發的時候我們可以直接把預先編寫的模塊插入到我們的程序中去,這不也是大大低了開發周期嗎?初學者完全可以根據自己的需求來編寫一個自定義庫.好了,說了這些,有些地方我理解錯了,還請各位指出來,交流是很重要的,前提是要把自己的心態放平.下面我將談論本問的重點,也就是如何來學習C語言,是給那些初學者讀的.

正題部分:

有人可能會說:學習還用你教啊,誰沒上過學啊.其實我今天要說的只是,站在一個過來人的角度,來分析與解釋學習C語言的過程中比較困難的地方.當然我個人也會對比較具體的問題進行解釋(個人看法).我一直在強調個人看法,我是想讓大家明白,對於同一個問題大家可能都很難達成統一的意見,希望批評的時候客氣點就好嘍!

初學者該看哪些書來入門:

在學習C語言之前,首先就要選擇一本教材,對於初學者,我個人並不建議去讀電子書籍,最好是買紙質書來學習.比如比較有名的"C程序設計"就很不錯,尤其是第二版.我也看過,比較適合中國人來初學.整本書都在全面系統的講解C的語法結構,構成C的語言元素包括:數據類型,支持的運算符,標識符(是由程序員按照命名規則起的名字,用於變數名,函數名,宏名等等),關鍵字(編譯系統用於實現C內部功能的詞,比如:轉向goto和中斷break等等)等.看完這本書你基本上可以寫一些簡單的小程序,當然是DOS下的程序.如果你想在進一步深入學習C的話,可以看"C陷阱與缺陷"這本書.寫這本書的作者是在Bell工作對C是非常精通的,應該算是大師級的人物了.如果你暫時不想深入C的話,也沒問題,因為此時你完全可以把C當作一種編程工具來使用,你要做的就是多寫Code來讓自己熟悉C語言.經驗是非常重要的,"經驗是檢驗真理的唯一方法".當然你不會紙上談兵,如果你有過多的開發經驗的話,就知道在紙上或最初的設想的Code拿到計算機上來實現,最終會發現有很多地方都是不合理的,之前是沒有辦法想像到的.在初學C的過程中,比如你會看"C程序設計"來初學C,當你學完每一章的時候要把習題來完成,這里就是考驗你學到的知識了,看看你應用能力怎麼樣?尤其是程序設計題目,比較有意思.哪裡不懂了.可以翻回去看書中的解釋.如果沒有解釋或你還是不明白,可以去問別人,與其他人交流. bbs,QQ或Google.直到你弄明白為止.當你把問題最終解決的時候,我敢打賭,此時你一定很興奮,或者是比較興奮.這個時候知識已經在你的大腦里了.

下面我為你推薦幾本不錯的關於C語言籍:

C編程規范
C語言大全第四版 (個人感覺不錯,裡面有提及C標准方面的東西)
C和指針
The C programming Language (經典著作)

如果你要看電子書的話,以上幾本書在Google上很容易就可以找到.

關於C語言的初步理解:

對於初學者,會有太多的疑問,原因是你的知識面太小.現在我為你解釋一些C相關的東西.目的是讓你能夠有一個大致清晰的方向,來給自己安排學習計劃.專業的來說,我們是或將是一名程序員,程序員當然就是要開發程序了.對於軟體開發方面我來解釋下術語:

C,C++,ASM,Basic,Java 這些是計算機語言.計算機語言很多,我就不多說了.

Visual C++,Visual Basic, Microsoft研發的開發環境,開發環境包括:編譯器,庫函數(每種C語言編譯器都支持標准庫,同時它們也會擴展自己的庫,所以很多比較以來庫函數實現的程序員,在轉向不同的開發環境的時候最初總是不使用的,會遇到很多問題),一些資源模板等等.Visual 就是可視的意思,後面的就是語言.Visual C++支持C與C++2種語言,是根據文件的擴展名來判斷採用哪種編譯內核.

什麼是"面向對象"與"面向過程"? 其實是2種完全不同的程序設計思想,C語言是面向過程語言,而C++是面向對象語言.在面向對象的語言中有"類(Class)"這個東西.C中沒有.對象是由類來派生的一個實例,相反類就象是一個模板.

什麼是SDK? SDK就是軟體開發工具包(Software Development Kit).指的范圍比較廣,通俗的說,凡是能夠與軟體開發過程占上邊的東西都屬於.比如:庫文件,參考資料,介面函數,當然語言也應該屬於.

DDK就是設備驅動程序開發工具包.

Turbo C: 這是一個比較精緻的C語言編譯器.

理論上來說任何一門語言都可以在任何一種操作系統上運行,前提是操作系統要支持.也就是我們所說的應用程序介面,比如Window API(Application Programming Interface),其實是Microsoft內部定義的介面函數用於實現一些Windows內部的功能.一些對象的描述術語,在不同平台上是不同的,比如:Windows下的"調用",經常被稱為"呼叫","返回"被稱為"傳回".

什麼是"演算法"? 你最初只需要知道演算法實際上就是對特定的Data進行運算的一段代碼而已.也可以認為在求解一道題目的時候,採取的方法與步驟的總稱.對於基本的C程序來說,實際上就是由Data與演算法來組成的.

什麼是"數據結構"? 如果要是系統的講解,還需要一本書"數據結構",簡單的說:是程序要處理的數據在內存中的存儲與組織的方式,分為:物理結構與邏輯結構.邏輯結構就是我們抽象化以後得到的大腦影象.

什麼是"函數庫"? 它們以文件的形式存儲,是預先定義好的函數的集合,我們的程序可以直接調用.當然前提是要包含它的頭文件(庫函數的原型聲明).這些函數是在靜態連接期間組成到.exe文件中去的.Windows又存在另一種庫,叫做動態連接庫(DLL).

GUI: 也就是"圖形用戶界面",就是我們在Windows上看到的,存在:菜單欄,滾動條與顯示區域的窗口.

GDI: 圖形設備介面,從程序寫作者的角度來看,其實GDI就是由上百個函數與數據形態和一些相關的數據結構所組成的.

學習C語言的全過程:

仔細想想,實際上學習C語言,最初是應該先學習C語言的基礎語法.也就是學習C語言的組成部分.一部分一部分的向下學.知識要一點一點的鞏固的.本人假設你學習C語言是看"C程序設計".我認為你應該先把C程序設計仔細的看一便,這樣你應該可以對整本書和C語言的整體組成結構有個大致的清晰了解.不要認為學習只是在看書,看一便就可以了.你應該學會記筆記,在記筆記的過程中,其實你就是在學習,從知識的分析,理解,歸納,到最後以自己的思維方式記下來,這整個過程就是把書中的知識抽象到你自己的腦袋裡.個人感覺學習效果非常好,不懂就問,要多多與人交流,要多思考,遇到問題自己先多想想,實在找不到問題出在哪,在去請教別人,不要有不懂的地方就直接去問別人,那樣對你沒太大的好處.其實要學會給自己安排適合自己的學習計劃,我大致來估計了一下,如果你每天能花4個小時安靜的,用心去學習的話,30天之內你應該可以掌握C語言了.其實在整個學習過程中你大多數時間都在看書,而不是面對電腦.在調試你的代碼之前,先在紙上把核心代碼大致寫出來,分析一下:程序的組成模塊(可以是一個函數或多個),由幾個函數來實現,介面的封裝.採用哪種數據結構更適合一些.關鍵在於演算法.在你的最終程序發布之前,最好把你的代碼行數減到最少.不要只想著把代碼寫多.過多的代碼對程序來說是負擔.你可以在Internet上下載一個文件(C語言經典例題.chm),裡面大致包含了上百個經典的例題.每一個例題都是C語言某部分的典型應用.花時間把這個文件中的所有例題代碼研究一下,最好能自己把代碼改善,以自己的方式來求解.以後你會發現你在寫一些應用程序的時候經常會有一些演算法.會涉及到我之前提到的例題.最後我認為你可以自己來寫C語言標准函數,比如strcpy(); strlen();strcat();最好不要過分依賴庫函數.

C語言學習的難點:

現在應該是已經講到一個重點的環節.很多網友都說學習C語言很難,我認為C中有些部分是比較復雜,難理解的.當然在你具有了豐富的開發經驗以後,這以不在是問題了.下面我個人會對我認為學習C的時候比較難學的地方進行我自己的闡述,如果哪裡不正確,還請各位指出:

指針的出現:

我想有很多初學者學習到指針那一章都感覺很難,下面我就以自己的想法來解釋下指針這個特殊的數據類型,
基本變數大家可能並不難理解,因為基本變數其內部存儲了同類型的常量,事實上指針也是變數,不過呢,這個變數和基本變數有點不一樣,那你又問了:是哪裡不一樣呢? 我告訴你,簡單的來理解其實普通的變數內部存儲了同類型的常量,而指針變數內部存儲的則是"同類型變數的首地址".這樣你能夠理解嗎,是很簡單的解釋,但不失本質.事實就是這樣的.如果你不理解"同類型變數的首地址"的話,我可以給你形象的來描述一下:
float Variable; //聲明一個單精度實型的變數
此時,編譯器已經給Variable分配了內存空間,結構如下:
__________
| |1001
|---------
| |1002
|---------
| |1003
|---------
| |1004
|---------

以上便是Variable的內存結構了,16位下的float佔用4個位元組,內存地址是線性編碼的,我們可以很容易的看出Variable的首地址就是他第一個單元的地址1001,好的,繼續向下看:
float *Pointer=&Variable; //聲明一個指向Variable的指針Pointer
_________
|1001 | 這是Pointer的內存結構
|_______|

我們的程序可以這樣來執行:

Variable=1.0;
直接給Variable賦值,我們稱為直接訪問.

也可以這樣執行:
*Pointer=1.0;
也可以通過指針變數來賦值,前面的*是間接運算符號,意思是求Pointer內部存儲地址所標識的內存單元.也就是Variable.此時,是賦值是通過間接訪問來實現的.可以這樣形象的描述:

________ (指向Variable) __________
|Pointer|------------------------------------>|Variable|
--------- ----------

以上應該是指針實現的基本解釋,很多優秀的程序寫作者都說指針是C語言中的精華,的確如此,很多優秀的程序寫作者寫程序都非常依賴指針,因為它很方便,實際上指針所訪問的對象是沒有限制的,他可以指向任何類型的變數,前提是只要我們知道內存地址.因此指針也並不安全,在開發網路程序的時候,盡量要少使用指針.下面我們在來看一下指針在數組中的使用.

數組中的指針:

簡單的來解釋下數組,數組結構在C中使用比較普遍,其實最常用的就是char 類型的數組,主要是用於字元串操作.實際上數組是"同類型變數的有限集合".我想這應該不難理解吧.數組在內存中佔用連續的內存單元(地址連續),來存儲數組中的每一個元素.數組是預先分配好指定長度的內存單元,供數組元素使用.它並不支持動態內存分配.在內存中想要唯一的確定數組,需要2個標識:入口地址(函數名)和結束標記('\0').有些語言並不向C語言這樣支持字元串結束標記,它們必須要另外聲明一個變數來標識尾元素的下標.那數組名其實就是這一組內存單元的首單元,他的地址就是整個數組的入口地址.此時應該明白了,數組名是一個指針,這樣理解沒有問題.不錯在具體操作的時候不允改變數組名的地址,也不符合實際要求.這樣就可以明白數組名是一個什麼 const Pointer(指針常量).我們可以這樣做:
int Array[10];
int *Pointer;
Pointer=Array;
for(i=0;i<10;++i)
Pointer==i;

以上代碼應該是沒問題吧,同類型的指針,完全可以勝任數組名的任務.一點問題沒有而且可以運行的很好.當然,我們可以進一步把代碼這樣來寫:

for(i=0;i<10;++i)
Pointer=i;
改成
for(i=0;i<10;++i,Pointer++)
*Pointer=i;
不好意思,我記不清了,指針的++運算是地址+1還是向後移動一個元素的位置,如果是地址+1的話,以上代碼在改成這樣:
for(i=0;i<10;++i,Pointer+sizeof(int))
*Pointer=i;

如果數組類型是char的話,那就更方便了,因為字元串存存在一個在尾元素之後的結束標記('\0'),下面給出一個簡單的代碼,應用char Pointer:
char * my_strcpy(char * dst, const char * src)

{

char * cp = dst;

while( *cp++ = *src++ ); // 注意運算符的優先順序與結合性

return( dst ); //返回新傳的指針

}
以上代碼實現字元傳Copy功能,代碼是不是很簡潔啊.如果不需要移動內存塊的話,我們完全可以通過交換指針(內存地址)來實現排序操作,其效率應該是很客觀的.補充一句:千萬要弄清楚,指針本身與指針所指向的變數不是一個單元.

具體教程:http://www.programfan.com/article/subject1.asp