❶ 我是一名在校大學生,還沒畢業,學了c語言,但不知道它有什麼用,我想用它去掙錢
用C語言掙錢很正常,C語言能完成幾乎所有的工作,上到圖形界面與網路通信,下到系統內核,如果你想僅僅用C的話可以選擇Linux平台,現在在Linux平台C語言還是主流的,如果想選擇Windows平台建議還是用C語言寫一段時間,然後再選擇其他框架,畢竟Windows系統的機制你需要時間熟悉與掌握。
爭取把計算機專業的核心課程的內容用C語言走一遍。至於其他的語言可以工作了以後再學,現在在學校先修內功,如演算法和數據結構,還有操作系統等等,以後工作了可沒有太多時間學這些東西了。
現在不論大小公司的筆試面試,對應屆生的語言要求不會太高,主要就是看基礎和解決問題的能力。平時多練習,多做些項目,如果找不到大型多人合作的,就自己寫一些小項目,不需要大,5000到10000行之間,如果再大可能構架都需要仔細想想了,這的看個人的意向。至於項目的主題可以自己根據自己興趣定,比如郵件收發客戶端,即時通信程序,俄羅斯方塊,信息管理,高性能TCP主機(多並發),或者再高級一點,命令行解釋程序,網路爬蟲與搜索,小型編譯器的實現,甚至是簡單操作系統的實現(好像網路偏多一些-_-),這些內容絕大多數都可以通過C去實現,還需要比較廣的知識面(單看C語言那本書是不夠的呵呵)。
所以先不需要去考慮自己該學什麼語言,把C語言基礎打好,然後學習平台知識與領域知識,如操作系統,資料庫和網路。
❷ C語言到底是講什麼的,大學生學C語言有什麼用
C語言是國際上流行的計算機高級語言,既可用來寫系統軟體,也可以用來寫應用軟體。
C語言是在B語言的基礎上發展起來的。1970年美國貝爾實驗室的
Ken
Thmpson
以BCPL語言為基礎,又做了進一步簡化,設計出了很簡單的接近硬體的B語言(取BCPL的第一個字母),1973年貝爾實驗室的D.M.Ritchie
在B的基礎上設計出了C語言,現在C語言成為世界上應用最廣泛的幾種語言之一。
C語言的用處:對操作系統和系統實用程序以及需要對硬體進行操作的場合,用C語言明顯地優越於其他高級語言,有的大型軟體也用C語言編寫
大學生為是學它?現在軟體編程已經成為進軍白領的捷徑,擁有高超的編程技巧和經驗實現高薪非常容易。
❸ c語言到底可以來幹嘛大學裡面的老師講的太差了
任何編程語言都是一種生產工具,與農夫的鐮刀、工人的鐵錘並無區別。既然是工具,它的最終目的就是用來產出,也就是寫出具有價值的程序。這個「價值」取決於需求是什麼、以及在多大程度上滿足需求。例如對於銀行來講,你可以用C語言寫一套存款管理程序或者巨型資料庫管理系統;對於嵌入式應用來講,你可以用C語言寫四旋翼飛行器或者汽車中控系統……
你的疑惑,可能跟大多數理工科學生一樣,學C語言(尤其是老譚的C語言),除了做題還TMD有什麼用??!!這種時候我建議你上開源社區挑選個你感興趣的項目,學習或者參與,了解編程語言這種工具真正能做到的事,例如一個互動式的動畫、例如一個內網泛洪攻擊小工具……
當你開始了解這種工具的特性,你就會嘗試用這種工具來做你想做的事(例如自己寫個賬簿程序,例如暴破進某個可人兒的相冊密碼)……
❹ 大學空餘時間學習c語言有用嗎
應該說,不會沒有用。
1、學習C語言可以加深你對計算機的認識和理解;
2、如果你是理工科的學生,可以為你將來學習C++、Java打下堅實的基礎,能夠更好的理解類;
3、C語言是唯一由產生到現在仍比較流行的面向過程語言,它能夠利用指針直接管理內存,這是當前很多編程工具不具備的功能,如Java等。
4、學習C是不是還可以考計算機等級呢!
呵呵
❺ 大學生學習C語言有什麼用啊
其實學電子的學習C語言是很有必要的。
用c語言編程,可以鍛煉你良好的邏輯分析能力。
另外在電路設計方面以後應該會設計到數字邏輯與VHDL設計,VHDL與集成電路設計,等等。VHDL是一種復雜的語言,沒有良好的c語言的基礎當然是不行的了。
❻ 無意中大學進入了計算機專業,現在學的是C語言程序設計,誰來告訴我,這個學成之後有什麼作用呢如題 謝
用處不大,除非你要開發操作系統。 之所以先學C,是因為它是最基礎,最適合初學的語言。 現在的高級語言C++,java,C#,還有腳本語言,很多都是用的C的語法。 好好學哦,加油!
❼ 在大學學C語言能幹什麼有什麼用最妤舉些易明白的例子
學了總沒有壞處的,出來工作了,至少你不編程吧,別人說你還是聽得懂,不至於盲
C語言的基本語法我是不打算再提了,很多C語言編程的書,就是將一些基本的數據類型、數據結構、語法,然後就是一些數值
計算的實例,大多數都是雷同的,難免有抄襲之嫌,而且頁沒有多少實用價值。
本書以實用實例作為編程指導,指引大家編寫真正實用的程序。了解到大家對黑客程序、病毒、窗口類程序比較感興趣,因此我就拿這些實例進行講解。基於大家基本都用Windows XP SP3,我也就在這個系統上把程序調試成功後再給大家講解。編程環境,我還是喜歡VisualC++ 6.0
本書計劃從四個大的方面來講,這四個方面是:窗口類、文件操作類、網路類、資料庫類。
都是時下流行的編程必備技術,也是軟體開發者,必須掌握的技術。中間以實例講解,逐步學習,相信大家看完後會有很大的提高的。
第一章窗口類程序的編寫
這一章就先來講解下窗口類程序的編寫。因為現在程序沒有界面,就像人沒有臉面一樣,而且好的界面更能吸引人。從基本的界面開始,相信能給大家指明出一條路的,使大家很容易地掌握窗口序的編寫。其實界面設計利用VC 6.0 的MFC,很容易地製作出來。這里從底層開始寫代碼來寫界面程序,使大家知道一些底層的東西,為以後學習打下好的基礎,相信您學了這些,再用VC 的MFC會得心應手的。
1.1
用 C 寫的第一個一個窗口程序
作為編程的開始,我們還是以一個Hello World來開始我們的學習之旅。代碼如下:
#include <stdio.h>
void main()
{
printf("Hello World!");
}
這是一個再簡單不過的C程序了,只要有點C語言的知識就能夠懂的,不過這里估計還有些人,到現在還不知道#include
<stdio.h>中的頭文件stdio.h到底是什麼東西,我就來說下了,stdio.h是一個文本文件,存在於磁碟上的,已VC為例它的位置如下圖:
也許你聽說過printf()函數是在stdio.h中預定義的,但是你見過其定義的形式沒有,沒有且看下圖
其定義形式,就如圖中所示,也許你並不懂前面那些東西是什麼,不用擔心,以後我會慢慢解釋給大家的。函數是先定義才能使用的,所以stdio.h中定義printf函數,我我們在引用了stdio.h頭文件後就可以在程序中調用printf函數了。
上面是在命令行中顯示一個「Hello World!」,沒什麼意思,下面我寫一個窗口程序,顯示個Hello World!
#include <windows.h>
void main()
{
MessageBox(NULL,"Hello World!","我的第一個窗口程序",MB_OK);
}
編譯運行後如下圖:
彈出的是一個對話框,上面有Hello World,還有一個標題和一個「確定」按鈕。
當然你會說這對話框也算個窗口嗎?這里肯定的告訴你:是的,對話框是窗口程序的一個子集。你可能還會這樣問,這樣一個簡單的窗口有啥用呢,其實這樣的窗口非常有用,我們在操作計算機的時候,會出現一些警告或提示的對話框,都是基本是這種方法寫出來的。就算是這個很簡單,學習本來不就是有易向難,有淺顯深奧去的過程嗎。
整個效果幾乎就是靠一個函數MessageBox的功勞。這里也先不介紹這個函數了,說些其他的。
其實用C編寫一些惡程序,就是把編程環境中所提供的一些函數熟悉了基本就可以了。用VC來寫成序,其中的頭文件有很多,定義了很多Windows API 函數、數據結構、宏,可以讓我們大家運用,通過它們,我們可以快速開發出使用的程序。這些Windows API在微軟的MSDN上查,上面有很多說明,部分還有代碼示例。不會是可以輸入函數名,查找相關信息,建議大家用英文版的Library,因為其內容比中文版的全面,英語不好的同學呢,就先看中文了
中文MSDN:http://msdn.microsoft.com/library/zh-cn/
英文MSDN:http://msen.micorsoft.com/library/en-us/
到這里,我們就完成第一個有界面程序的編寫,你感覺寫有界面的程序難嗎?顯然不難。
下面看一個向鋒和波波感興趣的程序:九九乘法
採用命令行形式
#include 「stdio.h」
int i=0,j=0;
for(i=1;i<10;i++)
for(j=1;j<i+1;j++)
printf(「%d*%d=%d\t」,j,i,j*i);
printf(「\n」);
和那個javascript效果都是一樣的,所以語言只要學好一樣,其他的就很容易旁通的,學習就撿一種學好,不要貪多。
好的,這一節就這樣吧,大家先各自了解下微軟的MSDN,對以後的學習會有很大的幫助的。
1.2 第一個真正的窗口程序
上一節中,我們用MessageBox函數輕松地實現了一個對話框窗口,可能你會說,那僅僅是個沒有用的對話框而已,是的,只是對話框而已。我之所以以一個對話框為例呢,是因為我只是想讓你知道寫一個有界面的程序並不是件難辦的事。明白了這一點後,我們繼續。今天來編寫一個真正的窗口程序。
下面就該羅嗦一段了,由於大家以前並沒有寫過什麼窗口程序,寫的都是命令行下的,我們知道在命令行下的程序都有一個主函數main,這個函數也就是程序的入口函數。我們現在用VC 6.0來寫,而且要寫窗口類程序,VC 6.0給我們提供了一個專門用作窗口類程序的入口函數WinMain()
這個函數原型是這樣的
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTRlpCmdLine,
int nCmdShow
);
大家是不是感覺這個函數挺復雜的,有這么幾個參數,而像main好像就沒有參數。其實main是有參數,這個向鋒和小四是知道了的。但是main函數的參數是可以省略的,而WinMain是不可以省的。這里也要對VC6.0的編譯模式改下
看下圖
依次是「工程」→「設置」→「連接」,在「工程選項」里把console改為windows就可以了。如果認真學了匯編,或是手寫命令編譯連接過C程序,就會知道這是干什麼的。Console是控制台的意思,以前我們用mian函數寫的程序都是以控制台模式連接的,所以很少會有界面的。現在我們要寫有界面的程序,所以要選Windows(窗口)模式了。
我們寫入以下代碼,並按照上面說的方法去做,看看結果
#include "windows.h"
int WINAPI WinMain(HINSTANCEhInstance,
HINSTANCE hPreInstance,
LPSTR lpCmdLine,
int nShowCmd)
{
MessageBox(NULL,"WinMain創建的窗口程序","WinMain",MB_OK);
return0;
}
結果如下圖:
與第一節中的這段代碼代碼比較下
#include 「windows.h」
void main()
{
MessageBox(NULL,"Hello World!","我的第一個窗口程序",MB_OK);
}
兩者比較下,後者多了個cmd窗口。可見用main寫的並沒有完全脫離命令行呀。所以以後我們寫窗口程序就用winmain了。
好了,轉過來,我們來看看WinMain()函數,其中有4個參數
先看下解釋(看不明白得先看完):
hInstance:應用程序當前事例的句柄。
hPrelnstance:應用程序的先事例的句柄。對於同一個程序打開兩次,出現兩個窗口第一次打開的窗口就是先前實例的窗口。對於一個32的位程序,該參數總為NULL。
lpCmdLine:指向應用程序命令行的空字元串的指針,不包括函數名。獲得整個命令行,參看GetCommandLine。
nCmdShow:指明窗口如何顯示(是隱藏還是顯示,有沒有最大化按鈕之類的)。取值可以參考MSDN
這里我相信有一個詞大家好應該比較陌生,句柄(HANDLE)是吧。下面我就來簡單的說下
句柄其實就是Windows系統中一個東西的唯一標識。就是系統中有很多運行的程序或者資源之類的,為了更好的管理使用,Windows系統給它們每人一個ID一樣。懂得網頁製作的人應該知道網頁中各個元素的ID吧,網頁的ID如果重復話可能出現錯誤。那麼系統的句柄會不會有相同的,那是肯定不會有的了,就和我們的學號一樣,系統自動分配每一個模塊的句柄,是不會相同的了。
對於句柄大家可以先這樣理解著,不用一下子搞懂得。以後學著學著就明白了。
估計大家對那幾個參數的類型改犯迷糊了吧。其實那幾個類型,並不是什麼新類型,都是Windows開發人員為了自己和他人編程方便,同過基本的C語言語法定義一種新的結構體,或者是共同體,再者就是枚舉類型。我知道結構體、共同體和枚舉類型,很多老師是沒有講到的,因為在書的後邊,很多教C的,又是很垃圾的老師,所以不會講那麼快的。其實結構體這些數據類型,就是通過我們常用的字元、整型、浮點等數據類型構造一個比較復雜的類型而已,舉個例子,就是我們知道C沒有一個數據類型可以描述一個人吧,那麼我構造一個是不是很方便我們編程呢。我們可以這樣構造一個
struct People
{
intage;//年齡
charsex[2];//性別
intheight;//身高
……
}
我們這樣定義以後就可以在我們以後的程序中利用這個數據類型了,People zhangsan;把zhangsan的身高172放到zhangsan.height中。這樣可以方便完成很多工作。所以結構體是很簡單的,還有其他的復雜數據類型也是很簡單的,都是有常用的簡單的類型來結合到一起構造一個復雜的而已。這和JAVA定義類是很相似的,java定義個人類,不是可以這樣的
public class People
{
publicint age;
publicstring sex;
publicheight;
……
}
看起來都差不多,而且用法也很相像。唯一的差別其實就是類可以有方法,而結構體是沒有的(經過特殊處理也是可以的,這里不用考慮)。
上面是為了讓大家了解下復雜數據類型的定義,羅嗦了一大堆。下面來看下WinMain中第一個參數的類型HINSTANCE這個只是個結構體而已,實際上和HANDLE這個類型差不多,但是有一點差別,而HANDLE是這樣typedef PVOID HANDLE;定義的,PVOID是什麼呢,我們來看下typedef void *PVOID;說明PVOID是一個指針,初始指向空(void)。因此可以知道句柄也是個指針而已。看著這么復雜原來也只是指針。
這些都可以在微軟的msdn上查得到的,而且很詳細的
那個第二個LPSTR 根據字面上的意思就知道是字元串類型了。查一查果然是。
大家一定要利用好msdn,很有用的。
本節就到此結束了,主要是說明了一個WinMain函數和結構體的事情,東西也不算太多,大家應該能接受得了吧。下節就來點復雜點深點的東西,希望大家做好心理准備。
1.3 窗口程序的編寫
在來啰嗦之前,希望大家能夠做好准備,這一節知識有點多,內容有點長。但願大家能夠一口氣讀完,如果一口氣讀不完,那就換口氣接著讀。
上節中我們用MessageBox()就實現了一個真正的窗口。MessageBox()中的原型如下:
Int MessageBox(HWND hWnd,
LPCTSTRlpText,
LPCTSTRlpCaption,
UINT uType);
參數解釋
hWnd 所屬對話框所屬窗口的句柄,如果是NULL,則此對話框不屬於任何一個窗口。
lpText 對話框窗口的顯示內容。
lpCaption 對話框窗口的標題。
uType 對話框的樣式和動作(像是確定按鈕,還是取消按鈕就是設置這里的)
關於這個函數的細節可以看這里
http://msdn.microsoft.com/en-us/library/ms645505(VS.85).aspx
到此為止,你也算是會了窗口程序的編寫,但只是一個開始,不過這已經很好,可能會讓你感覺到了C的魅力,也可能會稍微解點C語言能幹什麼的疑惑。在開始寫代碼之前,我有必要把細節和原理先說明下。
Windows下一個窗口創建的過程有以下幾個步驟:
1. 程序創建一個窗口,首先要向Windows系統注冊一個窗口類wndclassex,其實就是定義一個變數,變數的類型是WNDCLASSEX(結構體)。該結構體的定義與介紹看這里(http://msdn.microsoft.com/en-us/library/ms633577(VS.85).aspx),
typedef struct {
UINT cbSize;
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
HICON hIconSm;
} WNDCLASSEX, *PWNDCLASSEX;
成員介紹
cbSize 值為sizeof(WNDCLASSEX),在調用GetClassInfoEx前必須要先設置它值。
style 窗口類的樣式,它的值可以是窗口樣式值的任意組合。
可以有以下的值
lpfnWndProc 指向窗口處理函數(回調函數)。處理窗口事件,像單擊滑鼠會怎樣,右擊滑鼠會怎樣,都是由此函數控制的。
cbClsExtra 為窗口類的額外信息做記錄,系統初始化為0。
cbWndExtra 記錄窗口實例的額外信息,系統初始為0.如果程序使用WNDCLASSEX注冊一個從資源文件里創建的對話框,則此參數必須設置為DLGWINDOWEXTRA
hIcon 窗口類的圖標,為資源句柄,如果設置為NULL,系統將為窗口提供一個默認的圖標。
hCursor 窗口類的滑鼠樣式,為滑鼠樣式資源的句柄,如果設置為NULL,系統提供一個默認的滑鼠樣式。
hbrBackground 窗口類的背景刷,為背景刷句柄,也可以為系統顏色值,如果顏色值已給出,則必須轉化為以下的HBRUSH的值
· COLOR_ACTIVEBORDER
· COLOR_ACTIVECAPTION
· COLOR_APPWORKSPACE
· COLOR_BACKGROUND
· COLOR_BTNFACE
· COLOR_BTNSHADOW
· COLOR_BTNTEXT
· COLOR_CAPTIONTEXT
· COLOR_GRAYTEXT
· COLOR_HIGHLIGHT
· COLOR_HIGHLIGHTTEXT
· COLOR_INACTIVEBORDER
· COLOR_INACTIVECAPTION
· COLOR_MENU
· COLOR_MENUTEXT
· COLOR_SCROLLBAR
· COLOR_WINDOW
· COLOR_WINDOWFRAME
· COLOR_WINDOWTEXT
lpszMenuName 指向一個以NULL結尾的字元床,同目錄資源的名字一樣。如果使用整型id表示菜單,可以用MAKEINTRESOURCE定義一個宏。如果它的值為NULL,那麼該類創建的窗口將都沒有默認的菜單。
lpszClassName 窗口類的名字,字元串類型。
hIconSm 小圖標的句柄,在任務欄顯示的圖標,可以和上面的那個一樣。
定義一個WNDCLASSEX類型變數後,在給變數成員初始化後,我們就可以用
RegisterWindowEx(&wndclassex)來注冊這個窗口類了。
這個注冊過程,就和我們平常創建一個項目一樣,都要先注冊才能創建。
❽ 學C語言有用嗎
當然有用了~
C語言是在國內外廣泛使用的一種計算機語言。C語言功能豐富、表達能力強、使用靈活方便、應用面廣、目標程序效率高、可移植性好,既有高級語言的優點,又有低級語言的許多特點,特別適合於編寫系統軟體。
近年來,C語言不僅為計算機專業工作者所使用,而且為廣大計算機應用人員(包括大量原來是非計算機專業使用的人們)所喜愛和使用。全國計算機等級考試、全國計算機應用技術證書考試(NIT)和全國各地區組織的大學生計算機統一考試都將C語言列入了考試范圍。許多人用它編寫應用程序。學習C語言已經成為廣大計算機應用人員和廣大青少年學生的迫切要求。
不管你是什麼專業,以後都的接觸計算機吧~既然要接觸,必然要學好它,C當然是必不可少的啦~好好學習吧~
❾ 現在學C語言還有用么
你開什麼玩笑,C 比C++可有用多了,要被淘汰的是秒似是C++吧 .
JAVA 和C#出現之前,C++是性能最優和開發效率解決方案..
JAVA 和C#出現之後,C#是WINDOW平台 性能 超高效方案 JAVA 解釋執行 通用解決方案,JAVA 也是可以編譯執行的,編譯之後,性能比C++差不了多少..
以前內存價格高的時代,C++用來搞嵌入,現在內存白菜價,嵌入市場 C++ 落後開發效率已經遭到淘態. 雖然C++程序性能不錯,但是開發周期太長,成本消耗嚴重,所以,該改JAVA的全改了.
現在C++ 也就在國內的高校還流行著,其原因是國內高校教育落後,和企業需求完全脫鉤..好多老師都是前幾年社全的淘態品,他們活躍在C++時代,在企業里混不出名堂的,好多都找門子當老師去了,雖然我們都不願意承認這一點, 但這確實是事實,是民族的悲哀.
至於C語言,秒似是永遠不過時的語言. 它永遠活躍於伺服器開發,驅動開發,計算機最底層技術含量最高的東西,全是C的天下. 不過極品的C程序員需要很高的天份.
C的定義是研究,創新。
高級語言,比如 JAVA C# 的定義是 應用.
C++是過期的貴族,如果退回十幾年,C++是王者,研究應用 可以通吃,所以,C++程序員可以交叉開發,但是現在,大批C++應用程序員的流失,導致 C++ 淪落.
真正想學C的話,除了最基本的語法外,還要學習UNIX上的C API..
最後再說一句,別聽學校所謂的老師或所謂的學長胡扯了,再市場上去看看,需求才能決定一切.