请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

char *p;cout<<P;为什么不是地址,而是数组里存的字符串,和int *p不一样?

#include
using namespace std;
int main(){
char a[10]=“hello”;
char *p=a;
cout<<p;
return 0;
}

正在回答 回答被采纳积分+3

2回答

quickzhao 2021-11-08 10:54:02

C语言中的字符数组是比较特殊的,某种程度上是出于对效率的考虑,在传递数组信息时通常传递首地址。

1 回复 有任何疑惑可以回复我~
  • 提问者 厦门黄猫编程 #1
    那如何把char 数组地址赋值给指针?
    回复 有任何疑惑可以回复我~ 2021-11-08 11:05:46
  • quickzhao 回复 提问者 厦门黄猫编程 #2
    你这两步不就是吗 char *p=a;  只是C语言对待数组的处理方式比较特别,数组名本质上来说就是char const *,也就是说数组名是一种特殊的指针。
    回复 有任何疑惑可以回复我~ 2021-11-08 11:38:57
  • 提问者 厦门黄猫编程 #3
    谢谢老师的耐心。最后这个问题,我想输出字符a数组地址,cout《p,也不行。哪个命令可以?
    回复 有任何疑惑可以回复我~ 2021-11-08 12:04:37
quickzhao 2021-11-08 11:39:16
数组名本质上来说就是char const *的类型,也就是说数组名是一种特殊的指针。


0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信