C語言(概念術語裝逼犯)

什嘛!?二級指針跟二維數組的關係? 一維數組指針是否等價於二維數組的地址?怎麼定義數組指針數組?!別跑!看我揍死你丫的裝逼犯!

 

拓展:

一維數組的運算等價於一級指針,比如 int a[5],在運算時a就是被當做 int *a 來看待的(當然初始化和sizeof語句除外)。

二維數組的運算也等價於一級指針,只不過是一個一維數組指針,比如 int b[2][3],在運算時b就是被當做 int (*b)[3]來看待的(當然初始化和sizeof語句除外)。

三維數組的運算也等價於一級指針,只不過是一個二維數組指針,比如 int c[2][3][4],在運算時c就是被當做 int (*c)[3][4]來看待的(當然初始化和sizeof語句除外)。

 

此時,機智的你可以總結出一個非常重要的規律:一切數組,在運算時(當然初始化和sizeof語句除外)都將被視爲一個一級指針,具體而言:被視爲一個指向其首元素的指針。這條鐵律可以讓你有很多談資輔導學妹了。

 

“數組指針數組”這種八百年也遇不上的東西,只適用於理論研究,它指的是類似於下面w這樣的東西:

int a[5], b[5], c[5];

int (*w[3])[5] = {&a, &b, &c};

w就是一個數組指針數組,它包含了3個元素,這3個元素都是指針,並且可以指向int [5] 型數據。我們的確不需要使用這樣的複雜概念,但你如果想輔導學妹,這是你裝逼的資本。對了,出門右轉有一家名爲祕籍酷的公衆號,每天爲廣大信徒符施一小瓶裝逼水,不以細流無以成江海,不積跬步無以至千里,建議長期服用!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章