内存读取访问权限冲突

Qice 2016-07-23 10:54:12
#include<stdio.h>
#include<stdlib.h>

main()
{
int i1 = 5;
int i2 = 20;
int const *p = i1;

printf("i1 =%d, &i1=%d", i1,&i1);
printf("p= %d, *p=%d", p, *p );
getchar();
}



有谁知道这是那里出错了么,看了半天感觉没问题啊
...全文
633 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ballsky 2016-07-24
  • 打赏
  • 举报
回复
接分

#include <stdio.h>
#include <stdlib.h>

int main()
{
	int i1 = 5;
	int i2 = 20;
	int const *p = &i1;

	printf("i1 =%d, &i1=%d", i1, &i1);
	printf("p= %d,  *p=%d", p, *p);
	getchar();
	return 0;
}
青松无常 2016-07-24
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<stdlib.h>

main()
{
	int i1 = 5;
	int i2 = 20;
	int const *p = &i1;

	printf("i1 =%d, &i1=%x", i1, &i1);
//加断点看下
	printf("\np= %x,  *p=%d", p, *p);
	getchar();
}
paschen 2016-07-23
  • 打赏
  • 举报
回复
int const *p = i1; 你这里做了一个隐式转换,让p指向的地址是i1 (即5) 而这块地不能被读,所以你之后*p的时候会出错
小灸舞 版主 2016-07-23
  • 打赏
  • 举报
回复
int const *p = i1; 少了个&吧
zgl7903 2016-07-23
  • 打赏
  • 举报
回复
main() { int i1 = 5; int i2 = 20; int const *p = & i1; printf("i1 =%d, &i1=%p", i1,&i1); printf("p= %p, *p=%d", p, *p ); getchar(); }

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧