【发布时间】:2017-09-03 12:37:25
【问题描述】:
为什么指针在指向整数数组和字符数组时表现不同?
例如
int num[] = {1,2,3};
cout << num ;
这会打印出第一个元素的 ADDRESS
char list[] = { '1', '2', '3'};
cout << list ;
这会打印出数组整个元素的 VALUE!
同样
cout << (num+1) ;
打印出第二个元素的地址。而
cout << (list+1);
从第二个元素开始打印整个数组的VALUE
据我了解,数组名是指向数组第一个元素的指针。如果没有取消引用运算符 (*),指针应该返回元素的地址。但是为什么char指针会返回值呢?
【问题讨论】:
-
不同的是
operator<<是一个重载函数,char *的重载与其他指针类型不同 -
C 不是 C++ 不是 C。不要垃圾标签!
-
我没有意识到这个问题是专门针对 C++ 的。我认为这与整个指针和数组概念有关。对不起