问个函数重复递归调用的问题
void MyDraw(DPOINT * p){
if (n <= 0) return;
if((p.x < p.x+1) && (p.x > p.x-1) && (p.y < p.y+1) && (p.y > p.y-1))
{
pDC->SetPixel(p.x, p.y, RGB(255,0,0));
return;
}
DPOINT *p1;
p1 = new DPOINT;
int i, j;
p1 = p;
for(i=1; i<=n; i++)
{
for(j=0; j<=n-i;j++)
{
p.x = (p.x + p.x)/2;
p.y = (p.y + p.y)/2;
}
p1 = p;
}
MyDraw(p);
MyDraw(p1);
delete p1;
}
我不知道函数具体是怎么运行的,比如,第二次递归调用该函数的时候,进入下面这个return,会完全跳出函数么?还是再次运行MyDraw(p1);
if((p.x < p.x+1) && (p.x > p.x-1) && (p.y < p.y+1) && (p.y > p.y-1))
{
pDC->SetPixel(p.x, p.y, RGB(255,0,0));
return;
} 来个大神教我下吧 多顶顶,总会有高人看见的 你的后半句对 dzmcs 发表于 2012-8-29 15:50 static/image/common/back.gif
你的后半句对
哦,谢谢,我猜也是,后来调试的时候发现可以边调试边改代码,然后就发现这个结论了,这样就更复杂了看不懂了
页:
[1]