看到前面的答复估计还是很迷糊吧,其实都没有说到重点。重点是,执行到int *p时,在栈上分配了一个四字节的内存。这段内存的数据类型是一个指针。执行p=0时,只是把这四个字节的数据置为0。所以本来就没有问题的语句,当然不会报错。如果想报错的话,就*p=0。这样的话要么编译不通过。要么程序退出。因为这样你就访问了地址为0x00000000的空间,而且试图修改它。但是那段空间是属于操作系统的,不能让你修改。所以就报错了。
如题,有如下语句, int *p; p=0; 该怎么理解,VS2013并不报错
64,654
社区成员
250,484
社区内容
加载中
试试用AI创作助手写篇文章吧