C中數組陷阱

自己總結的幾點關於C中經常容易出錯的數組知識點:


1 聲明數組後,比如 int a[3], 那麼通過typeid(a)得到:a的類型爲int [3].


2 聲明int a[3], 那麼a的內涵可以理解爲指向int變量的一個地址(int *),但是這個地址是不能被修改的!可以理解爲a    實際是一個const int *,被隱含轉爲了int *======>a的類型爲int [3],其含義是const int *;

   由此,聲明下面語法不合法:

   char a[3];

   a="mn";

   因爲a聲明之後,是const變量,是不能修改的。

當然,如果僅僅想讓a也指向字符串“mn”,可以調用函數strcpy(a,"mn");

char* strcpy(char *dest, const char *source);

直接調用typeid("mn")得到 “mn”的類型爲const char [3].,其含義是const char*,可以帶到strcpy()函數中。


發佈了11 篇原創文章 · 獲贊 6 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章