這是工作正常代碼...在這個代碼的一些疑惑...(指針)
int main()
{
char c[]={'\t','\n','\0'};
int i;
char *p,*str;
str=c;
p=&c[1];
printf("%d\n%d\n",*p,*str);
system("pause");
return 0;
}
我的問題是爲什麼會str=c;
,而不是str=&c;
(這給誤差)和其p=&c[1];
而不是p=c[1]
?
請dowvoters,解釋自己。 –
數組不是指針。 http://c-faq.com/aryptr/aryptr2.html –
不,數組名稱不是指針。它被轉換爲一個指針,除非它是sizeof或address('&')操作符的操作數,或者是一個用於初始化數組的字符串文字。 –