了解C語言指針的重要性
指針是C語言中的一個重要概念,也是C語言的一個重要特色,它可以使C程序簡潔、緊湊和高效。對于學習和使用C語言的人來說,深入掌握指針是至關(guān)重要的。沒有掌握指針,就可以說沒有真正掌握C語言的精髓。 理解
指針是C語言中的一個重要概念,也是C語言的一個重要特色,它可以使C程序簡潔、緊湊和高效。對于學習和使用C語言的人來說,深入掌握指針是至關(guān)重要的。沒有掌握指針,就可以說沒有真正掌握C語言的精髓。
理解指針引用二維數(shù)組
講解C語言指針中最難搞清的"指針引用二維數(shù)組",我們以一個二維數(shù)組a[3][3]為例:
0行首地址
數(shù)組名代表數(shù)組的首地址,因此a就是二維數(shù)組的首地址,也是二維數(shù)組的0行首地址。同時,二維數(shù)組也可以看作一個一維數(shù)組a[0]、a[1]、a[2];每個一維數(shù)組中嵌套一個一維數(shù)組a[0]、a[1]、a[2],所以a[0]就是0行首地址。
1行首地址
a[1]就是1行首地址,與0行首地址的理解相同。
0行0列元素地址
a[0][0]可以表示為amp;a[0][0],a[0],*(a 0),*a。
第一個amp;a[0][0]是最容易理解的,學習數(shù)組時就是用這種方法表示的。0行元素是a[0][0]、a[0][1]、a[0][2],a[0]相當于行數(shù)組的數(shù)組名,表示行數(shù)組的首地址,即0行0列地址。*(a 0)和*a是完全一樣的,只不過為了更清楚地表現(xiàn)指針的移動性質(zhì)而使用不同的方式。a是0行首地址,*a訪問的就是0行0列地址。
1行0列元素地址
將上述0行換成1行,可以得到a[1][0]、a[1]、*(a 1)。
2行2列元素地址
a[2][2]可以表示為amp;a[2][2],a[2] 2,*(a 2) 2。
a[2] 3、a[2]是2行0列地址,這里忘了說一個重要概念,指針就是地址,地址就是指針。關(guān)于指針的移動,可以直接使用加減操作符來讓指針移動。a[2] 2就是2行2列地址,這是下標法的表示方式。如果用指針法表示,就是*(a 2) 2。
2行2列元素值
對于2行2列元素地址的間接訪問,可以表示為*(a[2] 2)、(a 2) 2。直接訪問就是a[2][2]。