C ++比较,结果如何?

时间:2012-06-10 11:43:01

标签: c++

有简单的代码

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

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

将会调用什么结果以及调用方法a多少次?

1 个答案:

答案 0 :(得分:6)

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

所以没有实际的答案,尽管你可以假设如果堆栈增长if( p0 ) return p0 > &p;将为真,否则为假。