一个奇怪的问题?(关于String和char*)
我在一个Form里加入以下控件:
一个Memo
一个Button
两个Edit
我发现以下现象:
第一:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
i=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
String M_string;
char *M_char;
M_string=Memo1->Lines->Strings[i];
M_char=Memo1->Lines->Strings[i].c_str();
Edit1->Text=M_string;
Edit2->Text=M_char;
i++;
}
//---------------------------------------------------------------------------
结果:
i=0时:
Edit1->Text="abc"
Edit2->Text="abc"
i=1时:
Edit1->Text="de"
Edit2->Text="abc"
i=2时:
Edit1->Text="f"
Edit2->Text="de"
第二:
{
String M_string;
char *M_char;
M_string=Memo1->Lines->Strings[i].c_str();
M_char=Memo1->Lines->Strings[i].c_str();
Edit1->Text=M_string;
Edit2->Text=M_char;
i++;
}
结果:
i=0时:
Edit1->Text="abc"
Edit2->Text=""
i=1时:
Edit1->Text="de"
Edit2->Text=""
i=2时:
Edit1->Text="f"
Edit2->Text=""
第三:
如果单独把:M_string=Memo1->Lines->Strings[i].c_str();
或者: M_char=Memo1->Lines->Strings[i].c_str();
前面加//这样再运行,结果正常。
各位大师能给我解释一下吗?
一个Memo
一个Button
两个Edit
我发现以下现象:
第一:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
i=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
String M_string;
char *M_char;
M_string=Memo1->Lines->Strings[i];
M_char=Memo1->Lines->Strings[i].c_str();
Edit1->Text=M_string;
Edit2->Text=M_char;
i++;
}
//---------------------------------------------------------------------------
结果:
i=0时:
Edit1->Text="abc"
Edit2->Text="abc"
i=1时:
Edit1->Text="de"
Edit2->Text="abc"
i=2时:
Edit1->Text="f"
Edit2->Text="de"
第二:
{
String M_string;
char *M_char;
M_string=Memo1->Lines->Strings[i].c_str();
M_char=Memo1->Lines->Strings[i].c_str();
Edit1->Text=M_string;
Edit2->Text=M_char;
i++;
}
结果:
i=0时:
Edit1->Text="abc"
Edit2->Text=""
i=1时:
Edit1->Text="de"
Edit2->Text=""
i=2时:
Edit1->Text="f"
Edit2->Text=""
第三:
如果单独把:M_string=Memo1->Lines->Strings[i].c_str();
或者: M_char=Memo1->Lines->Strings[i].c_str();
前面加//这样再运行,结果正常。
各位大师能给我解释一下吗?
...全文
相关推荐
python3-tkinter-3.6.8-39.el8.ppc64le.rpm
官方离线安装包,亲测可用
python39-tkinter-3.9.7-1.module_el8.6.0+930+10acc06f.ppc64le.rpm
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
python39-tkinter-3.9.6-1.module_el8.5.0+872+ab54e8e5.ppc64le.rpm
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
python39-tkinter-3.9.6-2.module_el8.5.0+897+68c4c210.ppc64le.rpm
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
python39-tkinter-3.9.2-2.module_el8.5.0+766+33a59395.ppc64le.rpm
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装


