社区
C++ 语言
帖子详情
指针指向string和数组 返回为什么不一样
yueyufei5
2011-01-28 03:41:11
char *p="Hello";
cout<<*p<<endl;
cout<<p<<endl;
int arr[3]={1,2,3};
int *p2=arr;
cout<<*p2<<endl;
cout<<p2;
string不就是char的数组么 为什么p返回的是Hello? 但是p2返回的是一个地址
...全文
163
14
打赏
收藏
指针指向string和数组 返回为什么不一样
char *p="Hello"; cout<<*p<<endl; cout<<p<<endl; int arr[3]={1,2,3}; int *p2=arr; cout<<*p2<<endl; cout<<p2; string不就是char的数组么 为什么p返回的是Hello? 但是p2返回的是一个地址
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lovesi3344
2011-01-29
打赏
举报
回复
其实,string不是一个class
而是一个typedef
今天看《effective C++》 刚好看到
你失误了 哦
[Quote=引用 1 楼 mstlq 的回复:]
string是一个class,不能简单理解成字符数组。
再说,楼主这里的不是string而是char*,cout的<<操作符对char*类型有特别的重载,可以输出字符串内容
[/Quote]
jackzhhuang
2011-01-28
打赏
举报
回复
其实就是因为指针类型不一样,就这么简单
jikeyuan1
2011-01-28
打赏
举报
回复
[Quote=引用 10 楼 piaojun_pj 的回复:]
char *p="Hello";不能简单的理解为数组,因为它是常量,你不能*p='a';而且在C++中cout<<其实是函数调用,const ostream& operator<<(char* str)const;所以cout<<p;就能够输出整个字符串,因为C++中没有重载const ostream& operator<<(int* str)const;这个版本,所以cout<……
[/Quote]
学习啦
寂寞的泡面
2011-01-28
打赏
举报
回复
char *p="Hello";不能简单的理解为数组,因为它是常量,你不能*p='a';而且在C++中cout<<其实是函数调用,const ostream& operator<<(char* str)const;所以cout<<p;就能够输出整个字符串,因为C++中没有重载const ostream& operator<<(int* str)const;这个版本,所以cout<<p2只能输出p2的值(int arr[]数组的首地址)。
modaoshi3002
2011-01-28
打赏
举报
回复
basic_string<>才是个模板类,
string是 basic_string<char>,
而实际上我们完全可以换掉这个char
常用的可以是wchar_t
modaoshi3002
2011-01-28
打赏
举报
回复
都在引用1楼,我就不引用了。
其实。。。。
。
。
。
。
。
。
。
。
string不是一个class
。
。
。
。
。
。
。
。
。
它是一个typedef
typedef basic_string<char> string;
未注销
2011-01-28
打赏
举报
回复
[Quote=引用 1 楼 mstlq 的回复:]
string是一个class,不能简单理解成字符数组。
再说,楼主这里的不是string而是char*,cout的<<操作符对char*类型有特别的重载,可以输出字符串内容
[/Quote] +
TimZhuFaith
2011-01-28
打赏
举报
回复
学习了[Quote=引用 1 楼 mstlq 的回复:]
string是一个class,不能简单理解成字符数组。
再说,楼主这里的不是string而是char*,cout的<<操作符对char*类型有特别的重载,可以输出字符串内容
[/Quote]
InfidelX
2011-01-28
打赏
举报
回复
[Quote=引用 1 楼 mstlq 的回复:]
string是一个class,不能简单理解成字符数组。
再说,楼主这里的不是string而是char*,cout的<<操作符对char*类型有特别的重载,可以输出字符串内容
[/Quote]
正解。
justkk
2011-01-28
打赏
举报
回复
用printf,没有二义性
昵称很不好取
2011-01-28
打赏
举报
回复
p是char*,而p2是int*类型,因此解释不一样,将p转换为void*类型也会输出一个地址
mstlq
2011-01-28
打赏
举报
回复
string是一个class,不能简单理解成字符数组。
再说,楼主这里的不是string而是char*,cout的<<操作符对char*类型有特别的重载,可以输出字符串内容
你必须知道的495个C语言问题
可我找不到任何方法来声明这样的函数——感觉我需要一个
返回
指针
的函数,
返回
的
指针
指向
的又是
返回
指针
的函数……,如此往复,以至无穷。
数组
大小 1.23 能否声明和传入
数组
大小一致的局部
数组
,或者由其他参数...
数组
和
指针
的区别深入剖析
而
指针
却不同,它
指向
的内存区域的大小可以随时改变,而且当
指针
指向
常量字符串时,它的内容是不可以被修改的,否则在运行时会报错。 如: 代码如下: #include<stdio> #include<stdlib> #include<
string
> int main...
C语言字符串使用
指针
形式和
数组
形式的区别
C语言字符串使用
指针
形式和
数组
形式的区别字符串的初始化那么用
指针
形式和
数组
形式有什么区别呢?在内存分配上的区别在使用时的区别 字符串的初始化 一.
数组
形式 指定大小的 const char word[6] = "wdnmd"; 2.不...
指针
和
数组
之字符串的区别
1. 字符串宏 #define CONST_STR "const str" ...
指针
指向
一块内存,如果
指向
字符串常量(RO),则不能修改内容。 如果申请了一块内存,复制字符串常量,则可以修改内容 #include s
C语言
数组
之
指针
数组
和
数组
指针
指针
数组
指针
数组
指针
数组
C++ 语言
64,647
社区成员
250,476
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章