main()
{
char *t="oooooop";
doit(t);//为什么t的返回值不变还是"oooooop";而不是ttttttttttttttttttttttttttt
delete [] t;
}void doit(char * u)
{
u="ttttttttttttttttttttttttttttt";
}
{
char *t="oooooop";
doit(t);//为什么t的返回值不变还是"oooooop";而不是ttttttttttttttttttttttttttt
delete [] t;
}void doit(char * u)
{
u="ttttttttttttttttttttttttttttt";
}
解决方案 »
- PreTranslateMessage如何过滤TVN_SELCHANGED消息
- 假设有4个不定长字节数组1,2,3,4 ......
- 控制台程序如何添加ontimer函数
- 如何获得一个指定目录下的所有目录名和文件名?
- 江湖教急!小弟想在COM中实现打印,请各位大大帮忙
- 在MID中,每打开一个document,如何设置新生成view的标题啊???
- 求救!!!!!!!!如何得到VC多文档菜单指针?!!!!!!!:(
- 大家在用ATL编写组件时,使用MFC还是SDK?
- 如何解决 vc60.pdb 出错的问题?
- OpenGL中辅助颜色缓冲区怎么用?
- 请教数据库,odbc高手?addnew()向空数据库添加记录后,update()出错?(有代码)
- 用vc如何导入导出oracle数据库,不使用oracle的工具
{
char *t = new char(100);
lstrcpy(t, "oooooop");
doit(t);
delete[] t;
}void doit(char * u)
{
lstrcpy(u, "ttttttttttttttttttttttttttttt");
}
{
strcpy(u,"ttttttttttttttttttttttttttttt");
}
"ttttttttttttttttttttttttttttt"的地址给了u,而t的值还没有变。
所以要改变u指向的字符串区域的内容,而不是改变u的值。
void doit(char &u)
{
}
{
char *t="oooooop";
doit(t)
}void doit(char* &u){ //注意这里
u="ttttttttttttttttttttttttttttt";
}使用引用,这样就可以实现你要的功能了
{
char *t="oooooop";
doit(&t);
delete [] t;
}void doit(char **u)
{
*u="ttttttttttttttttttttttttttttt";
}