2012-06-10 93 views
1

有简单的代码C++比较,结果如何?

int a(int *p0) { 
     int p; 
     if(p0) return p0 > &p; 
     return a(&p); 
} 

int main() { 
     puts(a(0) ? "y" : "n"); 
} 

什么结果将是多少次法a会叫什么名字?

+2

为什么不运行它并找出? –

+2

我以某种方式怀疑这是定义/指定的。 –

回答

6

使用>比较指针如果它们不是同一个数组的一部分,则未指定。

所以没有实际的答案,虽然你可以假设堆栈增长下降if(p0) return p0 > &p;将是真实的,否则为false。