求解!C++指针基本问题!初学者!谢谢了!

#include<iostream>usingnamespacestd;intmain(){strings="hello";string*ss;inta;int*aa;c... #include<iostream>
using namespace std;
int main()
{
string s="hello";
string* ss;
int a;
int* aa;
char* cc="hellld";
a=7;
ss=&s;
aa=&a;
cout<<ss<<endl;
// cout<<*ss<<endl;为什么这里不是输出hello?
cout<<aa<<endl;
cout<<*aa<<endl;
cout<<cc<<endl;//这里为什么不是cc指针的地址
cout<<*cc<<endl;//这里输出的为什么不是cc的内容?
return 0;
}
展开
 我来答
OliverXu
2012-10-23 · TA获得超过841个赞
知道小有建树答主
回答量:610
采纳率:0%
帮助的人:428万
展开全部
// cout<<*ss<<endl;为什么这里不是输出hello?

这句话输出的是hello,没错的,如果你说不能输出,那你再加个头文件#include <string>,要进行string的操作在C++中必须要这个头文件的。
cc哪里当然不是输出地址,cout命令会自动识别你传过去的数据类型,如果是非基本数据类型,那么都会将地址转换为地址中的内容输出。
cout<<*cc<<endl;//这里输出的为什么不是cc的内容?

因为计算机存储的地址都是字符串的首地址,所以cc存的是这个字符串的首地址,*cc代表取地址内容,cc是首地址,那么内容当然就是第一个字母的内容,所以应该是h
百度网友574fe3d
2012-10-24
知道答主
回答量:29
采纳率:0%
帮助的人:19.2万
展开全部
字符串:cout: 只要知道字符串的地址,就打印出字符串
cout<<*cc cc的地址是字符串“helld"的首地址,*cc为首地址中所存储的值 即为 h
我试过了:
cout<<*ss 输出的是hello
cout<<ss 输出的是ss的地址

还有:s 是个string对象 cc是字符串
两者的处理方式不同ok?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hubingdi1984
2012-10-23 · TA获得超过1.1万个赞
知道大有可为答主
回答量:9437
采纳率:86%
帮助的人:9289万
展开全部
首先,我测试了,*ss输出就是hello,不知道你那里为什么不是。
cc是字符串指针,要输出整个字符串,直接cout<<cc;就可以了,
而cout<<*cc;cc是字符串首地址,这句就等价于cout<<cc[0];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wq846034747
2012-10-23
知道答主
回答量:26
采纳率:0%
帮助的人:6.6万
展开全部
1.ss是字符串的首地址存放处,而s是一个字符串而不是一个字符,若是字符的话,*ss输出的就是s中的内容
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式