![](/img/trans.png)
[英]How do I interpret this declaration that appears to be a function declaration, but doesn't fit the usual mould?
[英]How do I interpret the declaration char *x[5]?
我的教授有一些在線上傳的代碼,但是我發現很難理解這個變量:
char * x[5];
這是否代表x的5個空格來指向字符的指針? 所以如果我要說
x[0]="Apple";
這會有效嗎?
這是否代表x的5個空格來指向字符的指針?
是。 一種檢查方法是評估sizeof(x)
, sizeof(x[0])
和sizeof(*x[0])
。 在我的x64機器上,它們的值分別為40、8和1-指針的長度為8個字節,因此char* x[5]
聲明了五個指針。
會
x[0]="Apple";
有效嗎?
是的,盡管它可能無法達到您的期望。 在此,將x[0]
設置為指向字符串文字,並且x[1]
至x[4]
的值未定義。 請注意,由於"Apple"
是字符串文字,因此它是只讀的。 您不能保證能夠對其進行修改。
是的,它是什么,即5個char
指針的數組,實際上
x[0] = "Apple";
已驗證。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.