我在接受采访时被问及下面的代码是否包含任何错误?
main()
{
int a;
int **p=&a;
}
我说它不会有任何错误,但会影响程序的输出。你们觉得怎么样?
答案 0 :(得分:1)
此代码没有任何编译时或运行时错误,因为它没有做任何事情! 但一般来说,它有一个问题。 p是int **类型的变量,但& a是int *。以这种方式编码可能会导致错误,特别是语义错误。
如果你真的想在int **中放一个int *,可以通过强制转换来实现。像这样:
int **p= (int**) &a;
答案 1 :(得分:-1)
这是错的。我还建议在=&
附近添加一些空格