怎麼學習C語言指針?
怎麼學習C語言指針?
多寫代碼,多用指針
記住四句話即可
#1:指針數組是一個數組,它的元素是一個指針#2:數組指針是一個指針,它指向數組的首地址#3:指針函數是一個函數,它的返回值是一個指針
#4:函數指針是一個指針,它的指向函數的入口地址。指針的用法就相當於彙編語言的間接定址,指針本身是一個變數,有自己的存儲空間,又有自己的值。如何學習C語言的指針,說實話,這真是一個較大的話題,而且非常有難度,難到我只能告訴你不斷看教程,不斷思考與領悟,不斷寫代碼,不斷拿紙筆演算推理,不斷調試代碼這五步,是不是很空泛?確實很空泛,沒辦法,現實就是這樣。其實我也在想,為何很多人看了教材有關指針章節後,依然犯暈,不理解,可能是教材沒有很形象的把指針的概念說出來吧。昨天下午我索性自己總結了一個理解指針的方法,即:從4個屬性來理解指針,分別是:1.指針自己的值;如int *p = 0x380fe0;*p= 1;(這樣寫很危險,我只是闡述下意思)指正變數p自己的值就是0x380fe0;2.與星號結合名;就是「*」與「p」一結合,就變成了「*p」,「*p」就是1;3.有用數據的值;1就是有用的數據;4.有用數據的類型;int就是有用的類型。關於這4個屬性的詳細解釋文章請參見:知乎專欄
我猜以屬性的方法來解釋指針,應該會讓你有所感悟吧,歡迎批評指正!
指針看起來很難。
一個是學習之前,老師可能會告訴你,我們就快學到指針了,會很深入了。然後學生有了一種恐懼感。
再一個是學習指針的時候,確實有需要多深入的理解一些才行,更加鑒定了「指針好難」的信念。但是會者不難。
學會了指針再回頭去看,就會發現好自然。別人學得會,你也一定可以。你正在經歷的,別人都已經經歷過去了,加油吧,少年。我這很想幫你,這套c語言也能開發網站裡面就有透徹講解指針的,樓上寫的太長啦不知道你能不能看到。
這篇文章推薦給你:
核心語法進階:3、指針就是一個門牌號
其實學習一門編程語言,首先我想應該弄清楚幾個問題:
1、為什麼要學習C語言?
如果是想考試、過級為目的,那麼就快速把語法過一遍後,去找來歷年的真題來做一下,反覆找到自己出錯的盲點,然後不斷改正修復就可以在短時間內有一個好的成績
如果是興趣使然,想獲得一門技能。建議在最初階段最重要的是,要得到學習的反饋,這樣才有繼續學習新知識的動力,可以加入學習的圈子,跟大家一起學習,讓自己學習有及時的反饋,逐步精進,這樣才會走的遠,也可以克服初期遇到的很多問題。
2、C語言到底能做什麼?
C語言是一門面向過程的編程語言,相對於很多其它高級語言來說,它更加接近計算機運行的底層邏輯,使用C語言可以學習內存 的概念,可以掌握一些常用的演算法。想Linux和Windows系統和iOS系統 的核心都是C語言編寫的。還有很多嵌入式的應用,即很多跟硬體相結合的地方都是使用的C語言。C 語言在幾十年中一直保持前三的地位,可以說是非常經典的語言。
3、如何學習C語言?
首先,我們不可避免的是學習基礎的語法和一些計算機內存的概念。在這個學習過程中是相對較枯燥的,可以找一些相關的專欄:《C語言核心30天突破》 或者圈子,加入後跟其它小夥伴一起學習交流,這樣會比較有動力,而且遇到問題也容易解決。
當我們基礎的語法學會後,就可以學習一些基礎的演算法,演算法是實現一個程序的核心,演算法通俗一點講就是實現某個目標的核心方法。然後再學一點數據結構的知識,和演算法結合起來,這樣會達到事半功倍的效果。
在這個過程中可以學一點圖形化編程的東西,但是建議不要去學一些複雜的庫和框架,那會將消耗你大量的精力。有一個組合非常適合初學者使用,就是:ege圖形庫 + codeblocks。
你可以看下專欄:《C語言核心30天突破》
祝你早日學成!
推薦閱讀: