在 C 中,為什么我不能寫:
char **expectedPINs01 = { "0", "5", "7", "8", "9" };
因為我得到了:
警告:從不兼容的指標型別“char *”初始化“char **”
但是可以這樣寫:
char *expectedPINs01[] = { "0", "5", "7", "8", "9" };
有什么不同?
uj5u.com熱心網友回復:
當您撰寫時,char **您將獲得足夠的空間容納一個指標。如果您希望它表現得像一個陣列,那么您必須為malloc陣列的大小留出足夠的空間并填寫條目。
當你寫的時候,char *x[5]你有足夠的空間容納 5 個指標。
當您使用初始化簡寫時,您可以省略 ,5因為編譯器可以從您的初始化程式中看到您希望有 5 個指標的空間,并且它為它們保留了足夠的空間,然后使用初始化程式簡寫為您填充它們。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/462810.html
