在 C 和 C++ 中,數組在聲明過程中,數組名稱為 const 指針,不許修改。且數組的大小在聲明時被寫死,非常不方便。
C語言中常用下面代碼替代指針。
#include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> int main(int argc, char* argv[]) { int n; scanf_s("%d", &n); // 使用指針代替數組,可實現一個數組的大小可變(使用時最好用const指針) // 最好判斷一下是否內存申請成功,即判斷p是否為NULL int* p = (int*) malloc(sizeof(int) * n); // 使用數組 if (NULL != p) { p[0] = 100; printf("%d\n", p[0]); } else { printf("No."); } // 使用后銷毀那段內存(保證安全) free(p); }
雖然上述使用的 p 指針來代替數組有安全隱患(主要體現在兩個方面:p指針非只讀屬性,p指針容易數組越界)。但該方法創建的數組的靈活性也大大增強。
(能力越大責任也就越大!!小心使用!!)