程序猿大神教你學C語言編程新手入門基礎:指針數組與數組指針
(1)、C語言是面向過程的,而C++是面向對象的 (2)、C和C++的區別:C是一個結構化語言,它的重點在於演算法和數據結構。C程序的設計首要考慮的是如何通過一個過程,對輸入(或環境條件)進行運算處理得到輸出(或實現過程(事務)控制)。C++,首要考慮的是如何構造一個對象模型,讓這個模型能夠契合與之對應的問題域,這樣就可以通過獲取對象的狀態信息得到輸出或實現過程(事務)控制。 所以C與C++的最大區別在於它們的用於解決問題的思想方法不一樣。之所以說C++比C更先進,是因為「 設計這個概念已經被融入到C++之中 」。 (3)、C與C++的最大區別:在於它們的用於解決問題的思想方法不一樣。之所以說C++比C更先進,是因為「 設計這個概念已經被融入到C++之中 」,而就語言本身而言,在C中更多的是演算法的概念。那麼是不是C就不重要了,錯!演算法是程序設計的基礎,好的設計如果沒有好的演算法,一樣不行。而且,「C加上好的設計」也能寫出非常好的東西。
這些是C/C++能做的
伺服器開發工程師、人工智慧、雲計算工程師、信息安全(黑客反黑客)、大數據 、數據平台、嵌入式工程師、流媒體伺服器、數據控解、圖像處理、音頻視頻開發工程師、遊戲伺服器、分散式系統、遊戲輔助等
一、指針數組
在這一節中我們來學習一個數組,這個數組比較特殊,也比較普通。說它特殊是因為這個數組是指針的數組,也就是說我們有一個數組,這個數組裡存放的變數類型是指針型變數;說它普通是因為數組變數其實與其它普通變數沒有什麼區別,指針變數就是一種可以存放內存地址的變數,所以它們也可以被定義成一串連續的變數集合,這個集合就是指針數組。例如,我們可以定義一組變數,這組變數就是一個數組,共有4個元素,而每一個元素都是一個指向int型變數的指針:
在這裡我們要注意一下運算符的優先順序,由於 * 的優先順序比 [] 的優先順序低,所以整個表達式中p要先與[4]做結合表示的是一個數組,再與 * 結合表示每一個數組元素的類型是一個指針變數。我們再來看一看多維數組與多維指針數組:
值得注意的地上是多維數組表示的是整型多維數組表示的是很數組中每一個元素的類型都 是型型的變數,而多維指針數組中表示的是數組中每一個元素的類型都是指針型變數。而在循環賦值時我們將數組指針數組中的每一個指針都指向了整型數組中的每一個元素。
二、指針數組與數組指針
接下來我們來看一看一個非常容易混淆的兩個概念:「指針數組」與「數組指針」。
指針數組:表示的是一個數組,數組中每一個變數都是指針型變數;
數組指針:表示的是一個指針類型的變數,這個指針變數指向的是一個數組。
我們用一個例子來仔細對它們的區別做說明:
對於上面程序中兩種不同的指針數組和數組指針請大家一定要分清。int *p[2][3];所表示的是一個二維數組,數組的每一個元素都是一個指針變數。也就是說,這是一個具有6個指針型變數的數組;而int (*q)[3] = array;所表示的是數組指針,注意:這裡只定義了一個指針型變數q,它指向一個二維數組array。而對於q來說,它告訴編譯器,這是一個指針,這個指針指向一個具有3列的數組變數。
關於這兩個概念不太容易理解,請大家自己動手編寫相關的程序,通過編寫程序、查看其運行結果來慢慢消化這兩個概念,並熟練掌握它們的原理與用法。
零基礎小白到大神之路,歡迎加學習裙 三四一六三六七二七裙里有免費c/c++課程,還有大量乾貨哦


TAG:程序員港灣 |