char* p3 = "1";和char* p1 = 1;区别

来源:互联网 发布:开淘宝网店培训机构 编辑:程序博客网 时间:2024/05/01 22:45
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了。
原创粉丝点击