我试图执行以下代码:
#include <iostream>
using namespace std;
int main()
{
int arr[4] = {1,2,3,4};
int *p;
p = arr;
cout << "p=" << p << endl;
char ch3[4] = {'c','d','e'};
char *ptr;
ptr = ch3;
cout << ptr << endl;
getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我打印指针p时,它打印存储在其中的数组'arr'的地址,而当我打印指针ptr时,它打印数组ch3而不是它的地址.我想知道为什么会这样.
因为operator<<重载const char*- 该重载打印位于该地址的char数组.
要查看地址本身,您需要将其转换为void*:
cout<<static_cast<void*>(ptr)<<endl;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |