C专家编程学习中的笔记
= 0
就会出错:“0x0040b7b3”指令引有的“0x00000000”内存。该内存不能为“read”。操作系统不允许读取数据。
*/
int m = 0;
p = &m;
*p = 17;
printf("&p = %d\n",p);
printf("&m = %d\n",&m);
printf("*p = %d\n",*p);
return 0;
}
运行结果:
&p = 0
&p = 1245048
&m = 1245048
*p = 17
因为在声明的时候,int *p = 0;把0当作地址赋给了指针p,也就是内存地址为0的单元。但是地址为0的单元,操作系统是不允许访问的,故运行时会出现错误。
当我们后面定义一个 int m = 17;将我们分配给他的内存地址赋给p,p = &m;这个地址是我们自己申请的,我们能够访问。也能给这个地址单元写入数据 *p = 17;读出数据。
#include "stdafx.h"
int main(int argc, char* argv[])
{
int *p = NULL;
printf("&p = %d\n",p);
*p = 17;
printf("&p = %d\n",p);
print
f("*p = %d\n",*p);
return 0;
}
编译没有错误,没有警告。
运行结果:
&p = 0
就会出错:“0x0040b7b3”指令引有的“0x00000000”内存。该内存不能为“written”。操作系统不允许写入数据。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库C专家编程看书笔记(7)在线全文阅读。
相关推荐: