求解!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;
} 展开
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;
} 展开
4个回答
展开全部
// cout<<*ss<<endl;为什么这里不是输出hello?
这句话输出的是hello,没错的,如果你说不能输出,那你再加个头文件#include <string>,要进行string的操作在C++中必须要这个头文件的。
cc哪里当然不是输出地址,cout命令会自动识别你传过去的数据类型,如果是非基本数据类型,那么都会将地址转换为地址中的内容输出。
cout<<*cc<<endl;//这里输出的为什么不是cc的内容?
因为计算机存储的地址都是字符串的首地址,所以cc存的是这个字符串的首地址,*cc代表取地址内容,cc是首地址,那么内容当然就是第一个字母的内容,所以应该是h
这句话输出的是hello,没错的,如果你说不能输出,那你再加个头文件#include <string>,要进行string的操作在C++中必须要这个头文件的。
cc哪里当然不是输出地址,cout命令会自动识别你传过去的数据类型,如果是非基本数据类型,那么都会将地址转换为地址中的内容输出。
cout<<*cc<<endl;//这里输出的为什么不是cc的内容?
因为计算机存储的地址都是字符串的首地址,所以cc存的是这个字符串的首地址,*cc代表取地址内容,cc是首地址,那么内容当然就是第一个字母的内容,所以应该是h
展开全部
字符串:cout: 只要知道字符串的地址,就打印出字符串
cout<<*cc cc的地址是字符串“helld"的首地址,*cc为首地址中所存储的值 即为 h
我试过了:
cout<<*ss 输出的是hello
cout<<ss 输出的是ss的地址
还有:s 是个string对象 cc是字符串
两者的处理方式不同ok?
cout<<*cc cc的地址是字符串“helld"的首地址,*cc为首地址中所存储的值 即为 h
我试过了:
cout<<*ss 输出的是hello
cout<<ss 输出的是ss的地址
还有:s 是个string对象 cc是字符串
两者的处理方式不同ok?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,我测试了,*ss输出就是hello,不知道你那里为什么不是。
cc是字符串指针,要输出整个字符串,直接cout<<cc;就可以了,
而cout<<*cc;cc是字符串首地址,这句就等价于cout<<cc[0];
cc是字符串指针,要输出整个字符串,直接cout<<cc;就可以了,
而cout<<*cc;cc是字符串首地址,这句就等价于cout<<cc[0];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.ss是字符串的首地址存放处,而s是一个字符串而不是一个字符,若是字符的话,*ss输出的就是s中的内容
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询