【发布时间】:2015-02-28 09:44:15
【问题描述】:
我可以知道为什么当我声明像这样的指针数组时
char *suits[]={"abc","cab","bca"}
即使我分配一个字符串而不是指针的地址也没有错误? 因为据我所知,指针只能通过地址(&)或另一个指针(*)来分配。更令人费解的部分是当我打印出指针数组时
cout<<suits[1];
我得到了字符串“cab”,而不是地址,即使我不使用解引用运算符。当我使用解引用运算符时
cout<<*suits[1];
我只有“c”。
总结问题是 1)为什么我可以将字符串分配给 char 类型指针而不是地址或指针,以及 2)为什么当我打印出 char 类型指针而不是给我地址时,它显示出字符串。 3)最后,为什么当我取消引用 char 类型指针时,它给了我字符串中第一个 char 的值。
真的想知道为什么 char 类型的指针与其他类型的指针如此不同吗?
【问题讨论】:
标签: c++ arrays string pointers