gpt4 book ai didi

c++ - 在 C++ 中使用指针的变量值及其地址

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:28:36 28 4
gpt4 key购买 nike

我在理解指针时遇到一些问题。在下面的代码中,我尝试以两种方式打印变量的地址——一次使用地址运算符,然后使用指针:

#include<iostream>
using namespace std;
int main (void)
{
int x = 10;
int *int_pointer;
int_pointer = &x;
cout << "x address=" << &x << endl;
cout << "x address w pointer=" << int_pointer << endl;
return 0;
}
x address = 0028FCC4
x address w pointer = 0028FCC4

这按预期工作。但是当我做同样的事情但现在使用字符类型变量时,我得到一些垃圾输出:

#include<iostream>
using namespace std;
int main(void)
{
char c = 'Q';
char *char_pointer;
char_pointer = &c;
cout << "address using address operator=" << &c << endl;
cout << "address pointed by pointer=" << char_pointer << endl;
return 0;
}
address using address operator=Q╠╠╠╠£åbªp é
address pointed by pointer=Q╠╠╠╠£åbªp é

我不知道为什么会这样。提前致谢。

最佳答案

C++ 库为某些类型重载了 << 运算符。 (char*) 就是其中之一。 Cout 试图打印一个字符串,一个以空字符结尾的字符数组。

只需投出指针:

cout << "address pointed by pointer" << ( void* )char_pointer << endl;

cout << "address pointed by pointer" << static_cast<void*>(char_pointer) << endl;

关于c++ - 在 C++ 中使用指针的变量值及其地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26579121/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com