读书人

关于字符串与指针的有关问题

发布时间: 2013-10-21 17:02:52 作者: rapoo

关于字符串与指针的问题
#include <iostream>

using namespace std;

int main()
{
char *pt = "hehe";
cout<<&pt<<endl;
cout<<&pt[1]<<endl;
return 0;
}

输出结果:
0014FD98
ehe

请问:
1.0014FD98是pt这个字符串的地址还是存储*pt这个指针的地址?
2.为什么第二条输出语句输出的是ehe,而不是pt[1]的地址?如果想要输出pt[1]的地址,应该怎么写? 指针 字符串
[解决办法]
1
变量pt的类型是char*,即指向char类型的指针,&(pt)是对这个指针变量求地址
2
cout重载operator<<操作符时,对char*类型的输入参数认为它指向C风格字符串并输出该字符串
要想输出地址,可以改成cout<<( void * )( &pt[1] )<<endl;当然,改成任何类型的指针都行

读书人网 >C++

热点推荐