指针基础之常见指针错误
程序员文章站
2022-07-13 23:36:34
...
指针基础之常见指针错误
一.指针可以对普通地址进行完全权限的访问
指针对普通地址有完全访问权限的处理
*p对a有读写的权限,*p的值改变,a的值也跟着改变
int a=10;
int *p=&a;
*p=100;
printf("a=%d *p=%d",a,*p);
输出的值为a=100,*p=100
二、对于常量,无法获取其地址
*p=&10;
三、 下面的操作 虽然可以对数据进行访问,但是数据格式错误,出现乱码、
*p="helloworld";
printf("%s\n",p);
return 0;
四、对于某些空间(系统自动分配的只读空间,进行写操作,会造成权限错误,如段错误,或总线错误)
char *s="helloworld"
p=s;
printf("%s\n",p);
五、 如果拿到某块内存的地址,在某些条件下是可以访问的,脱离了范围就成了非法访问,比如局部变量
{
int k=88;
p=&k;
}
printf("k=%d\n",*p);
//printf("k=%d\n",*p);应该在花括号内访问,脱离了花括号就成了非法访问