首页 > 代码库 > 测试向内存写数据
测试向内存写数据
1 //function1向指定内存写数据,已知a的地址是18FEF0 2 3 int function1() 4 { 5 int a=0; 6 int *p=&a; 7 int *q=(int*)0x18FEF0; //指定q的地址为0x18FEF0 8 9 printf("a=0的地址=%X\n",&a); 10 printf("*p的地址=%X\n",p); 11 printf("a的值=%d\n",a); 12 printf("*p的值=%d\n",*p); 13 printf("*q的值=%d\n",*q); 14 *q=3; //向18FEF0写入数据3 15 printf("*q的地址=%X\n",q); 16 printf("*q的值=%d\n",*q); 17 printf("a的值=%d\n",a); 18 return 0; 19 }
运行结果:
分析:
a是int型变量,它的地址是0x18FEF0,*p指向这个地址,相当于给这个地址重新取了个名字叫P,内存上的值没变,故*p=0。指定*q的地址为0x18FEF0,向这个内存写入数据3,改变了此内存上存的值。a其实是0x18FEF0的另外一个名字,0x18FEF0上的值变了,故a的值=3。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。