1, 由于数字1和小写字母L(l)长得特别像,特别是VS默认字体里的,所以
double a; scanf("%1f",&a); double b; scanf("%lf",&b);
3, 大小写导致提示 类型转换错误
typedef struct Anode { int adjvex; struct ANode * nextarc; InfoType info; } ArcNode;
然后在子函数中声明 ArcNode * p; struct ANode * nextarc; 然后赋值:
nextarc = p;
编译器会报错
MSVC(微软的VC、VS内置编译器)报错
Error (active) E0513 a value of type "ArcNode *" cannot be assigned to an entity of type "ANode *"
GNU系(GCC G++)编译器报错
error: cannot convert 'ArcNode*' {aka 'Anode*'} to 'ANode*' in assignment
其实问题就在代码中红色标记的 Anode和ANode,n大小写拼写错误导致编译器识别到struct Anode 和 struct ANode不是同一类型,所以ArcNode和struct ANode也不是同一类型。
但是为什么第三行
struct ANode * nextarc;
没有报错呢?也许是编译器的bug吧,我反馈给微软了。
另外关于i+++i https://www.zhihu.com/question/20123835