我在C语言中学习数组和指针时感到困惑,为什么ch,&ch,&ch [0]恰好彼此相等,而sptr,&sptr和sptr [0]不是?这是我的源代码:
int main(void)
{
char ch[7] = { '1','2','3','4','5','6','0' };
char *sptr = "132456";
double db[4] = { 1.0,2.0,3.0,4.0 };
printf("\n%p %p %p\n", ch, &ch,&ch[0]);
printf("\n%p %p %p\n", sptr, &sptr,&sptr[0]);
printf("\n%p %p %p\n", db, &db,&db[0]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我机器上的输入是:
00FDFD68 00FDFD68 00FDFD68
00037CD0 00FDFD5C 00037CD0
00FDFD34 00FDFD34 00FDFD34
Run Code Online (Sandbox Code Playgroud)