----------------解决方案--------------------------------------------------------
飞燕……抱歉哈……没明白你的真正意思……
但是,这不是语法错误,是逻辑错误,如果不给提示的话,人家就算运行发现不对,也没办法改正啊……使当地注释还是要加滴……
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]StarWing83[/un] 在 2008-4-20 15:46 的发言:[/bo]
3#,7#全部错误,哈哈抓到飞燕的马脚真是爽啊……
3#,7#全部错误,哈哈抓到飞燕的马脚真是爽啊……
嗯,确实大意了,传入的是结构而不是指针,不能改成void型函数
不过局部指针还是要去掉,纯粹冗余代码
----------------解决方案--------------------------------------------------------
燕子你用嵌套类了...我还没注意..析构函数都用上了...看来我改成引用也不算违规...呵呵.. ~s(){a=0;b='0';}
----------------解决方案--------------------------------------------------------
OK,不懂我想要说明的是什么的话,我就什么也不说了
还抓马脚,慢慢抓呀,自己找答案呀
----------------解决方案--------------------------------------------------------
#include "stdio.h"
typedef struct s
{
int a;
char b;
~s(){a=0;b=0;}
}s;
#if 1
struct s* bi(struct s& d)
{
d.a=100;
d.b='a';
return &d;
}
#else
struct s* bi(struct s d)
{
d.a=100;
d.b='a';
return &d;
}
#endif
int main()
{
struct s *p;
struct s sk;
sk.a=155,sk.b='z';
printf("%d,%c\n",sk.a,sk.b);
p=bi(sk);
printf("%d,%c\n",p->a,p->b);//这个结果为什么 100 a
return 0;
}
尝试一下语法加亮……成功……
[[it] 本帖最后由 StarWing83 于 2008-4-20 16:34 编辑 [/it]]
----------------解决方案--------------------------------------------------------
哎,燕子生气了……
LZ你函数声明里面少加了一个“&”,具体可以看我的代码。你可以拿来编译一下看看……
[bc02] 下次注意不能轻易批评燕子,后果很严重………………
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]StarWing83[/un] 在 2008-4-20 16:25 的发言:[/bo]
尝试一下语法加亮……成功……
尝试一下语法加亮……成功……
我想问你是用什么编译器的》??可以使语法高亮!~~?
----------------解决方案--------------------------------------------------------