如何使用char指针查找字符串的地址

时间:2015-04-05 08:09:35

标签: c++ string

考虑以下示例

我想打印"hello"的地址,而不是ptr

的地址
#include<iostream>

using namespace std;

int main()

{

char *ptr = "HELLO";

cout<<"VALUE OF ptr"<<ptr;

cout<<"ADDRESS OF ptr"<<&ptr;

cout<<"WANT TO PRINT ADDRESS OF STRING HELLO";

return 0;
}

2 个答案:

答案 0 :(得分:3)

大多数类型的<<运算符打印右操作数的<<的{​​{1}}运算符的不同之处在于它打印char*值指向的字符串;它取消引用指针,然后遍历字符串的字符,打印每个字符,直到它到达终止char*空字符。

要打印指针值而不是指向的值,只需将其转换为'\0',因为void* <<打印实际指针值:

void*

或者,如果您愿意:

cout << "The address of the string is " << (void*)ptr << "\n";

(顺便提一下,cout << "The address of the string is " << static_cast<void*>(ptr) << "\n"; 应该是ptr而不是const char*

答案 1 :(得分:2)

将其投射到任何其他指针。 (void *)ptr或reinterpret_cast&lt; int *&gt;(ptr)或其他东西。