char* p3 = "1";和char* p1 = 1;区别
以前都不会导致看到这个两个十分不理解。
说是第一个是p3指向的内容是1,第二个是p1指向内存地址1。我问为什么,表达式的前半截都是一样的,怎么一个就是内容,一个就是地址了。得到的答案是:就是这样。
再次遇到的时候,后者已经深刻理解了,前者在编译的时候编译器提醒了我:warning: initialization makes pointer from integer without a cast [enabled by default] 这说明后者对于编译器来说就是这样的char* p1 = (char*)1;这个强制转换让我明白了很多很彻底!所以p1指向的地址就是1了。