。
文件一(file1.cpp)中含下列代碼,
= {, , , , };
(file2.cpp)中含下列代碼,
#include <iostream> cout << p[] <<
出現編譯錯誤,如下:
*p’與先前的的外部聲明不匹配
,人們總是把所有代碼都放到main函數裡。隨著水平進步,人們開始把代碼分別放到幾個函數中。隨著水平繼續提高,人們終於學會了如何用幾個文件來構造一個程序。所以在學編程的很長一段時間內,人們往往只是接觸到指針和數組能夠互換的情況。比如
array[] = *p =, array, p); }
中,也就是作為函數調用的參數使用。更糟糕的情況如下,
,更是給人們帶來誤解——“喔,數組就是指針”。但其實這條語句,而作為參數的array 其實是作為指針來傳遞的。類似的情況還在main函數中出現,main函數的參數 char **argv 和 char *argv[] 也可以互換。再加上平時常常能夠見到在表達式中數組和指針可以交換,久而久之,人們便容易把數組和指針混淆起來。
參考文獻