一个C++输出问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 12:44:09
#include<iostream>
using namespace std;
class Student
{
private:
char *p1;
char sex;
int number;
int score;
public:
void set(char *p,char se,int num,int s);
void show();
};
void Student::set(char *p,char se,int num,int s)
{
int i;
p1=p;

sex=se;
number=num;
score=s;
}
void Student::show()
{
int i;
for(i=0;p1[i]!='\0';i++)
{cout<<p1[i];}
cout<<' '<<sex<<number<<score<<endl;
}
int main()
{
Student s1,s2;
s1.set("lili",'m',520,99);
s1.show();
return(0);
}
它的输出结果 是 lili?m52099
( 为什么会输出“?”呢? )

那个是char array的结束符

不会啊,
我的输出的是:lili m52099
你再试试新建一个工程,把代码再粘贴上去再试一次

我的调试结果是lili m52099 和你的不一样

我用的VC6.0怎么没有这种情况呢?正常输出,你用的什么编译器呢?