问题描述
- C++中关于输出值的问题
-
#include
using namespace std;
class str
{
private:
char *p;
public:
str();
str(char *st);
void display();
};str::str()
{
p=NULL;
}
str::str(char *st)
{
p=st;
}void str::display()
{
cout<<p<<endl;
}int main()
{
str str1("Hello"),str2("Book");
str1.display();
str2.display();
return 0;
}为什么cout<<p 呢,为什么不是 *p呢?
为什么cout<<*p时输出的是H和B
解决方案
*p表示输出字符型
p表示输出字符串
解决方案二:
c++格式化输出问题
关于c++输出菱形*的问题
解决方案三:
因为你的类型是char*类型, p此时是一个指针变量,他指向了一个字符串的首字符的地址,那么*p 取到的值就是 字符串的首字符。
另外,因为cout 是流式输出,即以字节流的形式输出字符串,相当于printf("%s", p); 所以不需要加上*, 反而加上*得到的不是你想要的结果...
时间: 2024-11-05 12:18:56