新手如何學好C語言?

2021-10-05 12:32:21 字數 3419 閱讀 6999

作為一名資深碼農,在軟體行業也拼搏了十多年,這裡跟想學習c語言的萌新童鞋分享下我的個人學習心得!!!

在大學時代,我們大二才開始學習c語言(起步有點晚啊),第一次看到那本黃黃的譚浩強老師的《c語言教程》,哈哈哈,就是這本了,滿滿的回憶啊!

開學拿到這本書後,心情很激動,因為以前總是羨慕那種黑客,好像很牛的樣子, 抱著好奇的心理隨便翻開了幾頁看了看,全程一臉懵逼, 因為以前從來沒有接觸過程式設計,所以猶如讀天書。沒事,才接觸肯定是這樣的,沒關係,看不懂咱們來硬看!!!

我學習中記憶很深刻的是才開始看資料型別,什麼整數,字元型別,浮點數,在這段知識點還勉強可以看懂,只是各種資料型別的範圍還弄不明白,因為是數字範圍,比如無符號整數,浮點數這種

0 ~ 2^32-1(4 294 967 295)

-2^31(-2 147 483 648) ~ 2^31-1(2 147 483 647)

這種, 搞不清楚!!! 所以就跳過了,然後看到變數賦值這個知識點,我也是混淆了好久,一直搞不明白  為什麼 

a=100;

不是比較,可能是以前數學思維, = 就是相等的意思。現在才明白,這個是賦值,把值塞到變數a中。。。

總之,我還是萌新的時候,經歷了和大家一樣的心路歷程,現在看來,這些知識點太簡單了!後面我就反覆抱著書本啃,一點一點的理解,最終70%還是能看懂了,所以在這裡,首先告訴大家,程式設計的這些語法,概念看不懂,千萬不要害怕, 一回生二回熟,多啃幾遍,逐漸你會發現你漸漸能看懂了,而不是看一遍之後,覺得看不懂,就不在看了,這樣你就會越來越迷糊!!!就這樣課前做好預習,上課聽老師認真講解,我的c語言學的非常順利,比其他同學學的都比較快,但是我們班普遍反饋c語言特別難!後面由於突出的表現,被我們的c語言老師(但是是計算機學院副院長)看中,幫老師代課,哈哈哈!!!

前面說了這麼多,就是想告訴大家,我在學校學c語言的時候,也是萌新小白乙個,並沒有很高的起點,連我竟然都能學好,你也一定可以學好,那麼下面我來跟大家重點說下,學習c語言中應該側重的知識點,c語言的知識點,其實並不是很多。

先說基礎的語法,那麼資料型別你肯定得記住啊,相當程式設計界的1+1=2 ,這些太簡單了

資料型別

描述大小

範圍char

字元1位元組

-128  ~   127

short

短整型2位元組

-32768 ~  -32767

int整型

4位元組-2 147 483 648  ~    2 147 483 647

long

長整型4位元組

-2 147 483 648  ~    2 147 483 647

float

單精度浮點型

4位元組-/+3.4e38(精確到6位小數)

double

雙精度浮點型

8位元組-/+1.7e308(精確到15位小數)

然後變數的賦值,這個必須理解啊:

寫法含義

a = 2

把2這個值塞到a中,讓a裡面的值變成 2

a==2

這個才是數學中的比較 兩個是否相等

2 = a

錯誤寫法,  2 是常量,沒法往裡面塞,只能往變數裡面塞

a = b

可以往變數裡面塞

在這兩者的基礎上,你需要理解一些流程,也就是我們寫**的基本結構

結構**

說明迴圈

for         while       do-while

三種迴圈

判斷if  else  

條件判斷

選擇switch case

選擇分支

跳出語句

continue    break

用於上面三種結構

還有乙個重要的概念,函式

函式型別

int   main(int argc ,char **a**)

主函式,程式的入口

int  fun(int a, int b )

有引數,有返回值的普通函式

基本上,上面都屬於比較簡單的概念,好,下面難度公升級的知識點來了!!!

陣列,c語言中的第乙個難點

陣列舉例

難度一維陣列

int a[5]=    

簡單二維陣列

int a[2][3]=, }

複雜字元陣列

char  a[3]=

簡單字串產生的

乙個字元陣列

char a="abc";  

很難理解區別啊

自定義型別,c語言第二個難點

自定義型別

舉例難度

struct

struct   stu

int age;

char name[10];

中等union

union addr

int age;

char name[10];

複雜,與結構體的區別

指標,c語言的終極難點,大家的噩夢來了,但是這個就是c的精華,掌握這個,才能說你真正的會c語言了

型別舉例

難度指標概念

就是乙個變數而已, 存放了乙個位址值

int *a = 0xfffe1824;

char *b = &c

複雜陣列指標

int a[3

int *p= a;

int b[3][4]

int (*p)[4] = b;

int *c[3]

int **p=c;

超複雜函式指標

int fun(int a,int b)

int (*p)(int ,int );

p = fun;

超複雜鍊錶:把上面指標與結構體學透了,就開始挑戰鍊錶吧

鍊錶型別

舉例難度

單向鍊錶

單項迴圈鍊錶

struct node

int data;

node * next;

中的雙向鍊錶

雙向迴圈鍊錶

struct node

int data;

node * prev;

node * next;

複雜鍊錶操作

頭插,尾插, 刪除,反向,修改

複雜檔案收尾,結束你的c語言階段!!!

檔案操作

舉例難度

文字檔案

file *  fp= fopen("1.txt","r")

中等二進位制檔案

file *  fp= fopen("1.txt","rb")

中等檔案指標的移動

fseek複雜

如何學好C語言

我現在是一名計算機專業的大三學生,從大一剛進大學校園,我的c語言老師就告訴我們,我們在大學注定要和程式設計糾纏四年,我們的設定就是程式設計師,當然畢業後不選擇本專業就另當別論了。我們學的第一門電腦語言就是c語言,我在大學之前完全不知道這個專業會學這些電腦語言,所以這對我來說就是個全新的領域。剛開始學...

新手如何學好linux入門指南

本文作為一篇linux新手入門的普通教程吧。有興趣的朋友,可以隨便觀覽一下,高手請飄過!相比windows,linux系統的入門門檻相對較高。打個比方吧,學習windows就像追求你的同桌,當然這個同桌對你而言要是個異性。這樣的追求,輕鬆而易得。不過,關於愛情,有個說法是,輕易得來的不容易珍惜,哈哈...

學好C語言

我想,單純的學c語言的語法,資料結構,相關演算法是遠遠不夠的,c作為一門 低階的高階語言 非常適用於和硬體打交道的場景,而這恰恰又是作業系統做的一部分功能 有人說c的難點和精華就是指標,而指標常用的操作幾乎都是和記憶體相關 同時,對於這樣一門高階語言,很想明白乙個程式如何程式設計機器看得懂的語言,如...