有时不小心错用了格式限定符,例如:int x;scanf("%f", &x); <----- 应该用%dprintf("%g", x); <----- 应该用%d而编译程序却编译通过了,没有发现错误,为什么?
编译器不会检查这些的。这很正常。好比你的汽车不会阻止你闯红灯一样。
楼上说得对。这些只能自己好好看书。
c语言中有强转这个东西,从这个角度也可以理解,c语言功能之所以强大,是因为限制很少,说白了,什么类型在内存中都是连续的01而已