C++ 如何打印字符指针(c+;+;)内的数据?

C++ 如何打印字符指针(c+;+;)内的数据?,c++,C++,我有一个 function(const char * data) { //how to print the data which is inside the data } 调试时,我只看到地址。如果我打印(*数据),则不会打印任何内容 有什么想法吗?std::coutprintf(“%s\n”,data)适合我。\35;包括 std::cout << std::string(data); #include <iostream> void function(const

我有一个

function(const char * data)
{
//how to print the data which is inside the data
}
调试时,我只看到地址。如果我打印(*数据),则不会打印任何内容

有什么想法吗?

std::cout
printf(“%s\n”,data)
适合我。

\35;包括
std::cout << std::string(data);
#include <iostream>

void function(const char * data)
{
    std::cout << data;
}
void函数(常量字符*数据) {
std::cout与std::cout有什么不同,因为数据是整数!!!:指针意味着是整数。因此,如果你要求打印一个整数,它会打印一个整数。不。指针是指针,尽管在内部表示为纯整数(大多数情况下).
cout@Stephane:除了可以直接打印指针指向其第一个字符的以零结尾的字符串,而无需创建一个(可能是动态分配的)字符串StpAn:你的代码可以工作,但是它不必要地通过分配内存和复制字符串浪费CPU周期。<代码>打印< /C>不是一个标准的C++特性,如果它是调试器中的一个函数,那么你应该指定你使用的调试器。<代码> *数据< /代码>只指地址上的第一个字符。代码>数据
:如果该字符是控制字符,则可能无法打印-这取决于您的终端/控制台软件。请注意,ASCIIZ表示形式中的空字符串只是一个0值(不是“0”字符),可能无法有效打印。您可以尝试打印(数据),但您没有充分说明您的环境,无法给您一个自信的答案。我不知道他是否在谈论gdb?请指定您正在使用的调试器。从
print
命令中,您使用的最佳猜测是您正在使用gdb。如果是,请尝试
x
命令。它允许您打印内存块的内容Y