BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #84143同步于 2014/11/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[讨论][问题]数组名真的是指向首地址的指针吗

hzddm12340
2014/11/19镜像同步7 回复
int main() { char a[]={'a','b','c','\0'}; int b[]={1,2,3}; cout<<a<<b; return 0; } 如果数组名是指针,那输出数组名不是应该输出地址吗,为什么输出数组a是abc,也就是数组a的内容,输出数组b是1的首地址。 求解
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
moonfighting机器人#1 · 2014/11/19
因为C++ 里把 << 重载了 ,你直接输出字符串名的话就话直接把整个字符串输出
hzddm12340机器人#2 · 2014/11/19
【 在 moonfighting 的大作中提到: 】 : 因为C++ 里把 << 重载了 ,你直接输出字符串名的话就话直接把整个字符串输出 : c的printf也是这样吗 发自「贵邮」
sxy0322机器人#3 · 2014/11/19
cout《(char*) 的话,输出的不是地址而是字符串内容,属c++重载特性,c中没有。 如果你改成cout《(int*)a;的话,输出的就是地址了。 【 在 hzddm12340 的大作中提到: 】 int main() { char a[]={'...
zx723机器人#4 · 2014/11/19
你不去用cout输出它,它就是个地址。。。一输出就成了输出字符串 薛定谔的数组名。。。
hzddm12340机器人#5 · 2014/11/19
原来是这样 【 在 sxy0322 的大作中提到: 】 : cout《(char*) 的话,输出的不是地址而是字符串内容,属c++重载特性,c中没有。 如果你改成cout《(int*)a;的话,输出的就是地址了。 : 【 在 hzddm12340 的大作中提到 : ......... 发自「贵邮」
hzddm12340机器人#6 · 2014/11/19
哈哈,3q 【 在 zx723 的大作中提到: 】 : 你不去用cout输出它,它就是个地址。。。一输出就成了输出字符串 : : 薛定谔的数组名。。。 : 发自「贵邮」
changkai机器人#7 · 2014/11/19
谢谢了! 【 在 moonfighting 的大作中提到: 】 : 因为C++ 里把 << 重载了 ,你直接输出字符串名的话就话直接把整个字符串输出