问几个大家可能觉得很简单但是小弟我不懂的有关问题,虚心求教

问几个大家可能觉得很简单但是我不懂的问题,虚心求教
1.我在VC中写了一个二维数组+/-重载的程序,用到了友元运算符重载,编译显示:INTERNAL COMPILER ERROR,我查了查,说是VC中碰到这种情况要把#include<iostream> using namespace std;改成#include <iostream.h>。我的问题是为什么会出现这种情况呢?还有别的类似这种情况吗?
2.还有一个问题:关于&。它不是有两个含义吗?一个是取地址符,一个是引用,能告诉我怎么区别这两个含义分别是在什么情况下用吗?
我虽说学了C++有一年,但是感觉之前学到的东西并不多,而且上机时间并不长,现在正在多实践实践。请各位高手用相对通俗易懂的文字说一下。万分感谢!!

------解决方案--------------------
对于第一个问题,我估计只会在VC++6.0出现吧,因为我今天晚上写重载的时候也出现了这样的问题,估计是兼容的问题,毕竟C++是从C发展而来的
第二其实还是很好区别的,放在“=”右边的是取地址符,其它的情况你看下就知道,比如
fun(int &a)肯定传进来的就是引用了
------解决方案--------------------
探讨

取地址符只在碰到指针的时候用吗?引用:

对于第一个问题,我估计只会在VC++6.0出现吧,因为我今天晚上写重载的时候也出现了这样的问题,估计是兼容的问题,毕竟C++是从C发展而来的
第二其实还是很好区别的,放在“=”右边的是取地址符,其它的情况你看下就知道,比如
fun(int &amp;amp;a)肯定传进来的就是引用了

------解决方案--------------------
引用一般都是用在申明上