这个程序会给出任何错误(运行时错误)吗?

时间:2011-08-27 13:08:21

标签: c pointers

我在接受采访时被问及下面的代码是否包含任何错误?

main()   
{
 int a; 
 int **p=&a;
}

我说它不会有任何错误,但会影响程序的输出。你们觉得怎么样?

2 个答案:

答案 0 :(得分:1)

此代码没有任何编译时或运行时错误,因为它没有做任何事情! 但一般来说,它有一个问题。 p是int **类型的变量,但& a是int *。以这种方式编码可能会导致错误,特别是语义错误。

如果你真的想在int **中放一个int *,可以通过强制转换来实现。像这样:

int **p= (int**) &a;

答案 1 :(得分:-1)

这是错的。我还建议在=&

附近添加一些空格