簡體   English   中英

如何解釋char * x [5]聲明?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM