指针,一次搞懂

int main()
{
int *a=NULL;
a=0x0000001;
*a=0;
printf(a,*a);
}

输出:
a=0x0000001
*a=0

 

ADDR DATA
(a初始地址)未知 NULL
未知 0x0000001
0x0000001 0
   

1.明确系统存储数据的格式:地址+地址上的数据

2.指针定义时,它也是个变量,所以也会被分配一个地址,不过我们不知道是什么,所以未知;如果我们给它赋初值NULL,就是在它这个地址上的值为NULL。

3.后又给它赋值, 则它的地址上的值变为0x0000001,。

4.*a=0,表示对a存储的数据取值,然后赋为0,表示a存储的地址,其所对应的值变为0.

因为:它所指的地方就是一个地址,他本身也是个变量,所以它本身也有个地址

 

  

 

 

 

posted on 2019-05-13 11:40  Nancy_Fighting  阅读(104)  评论(0编辑  收藏  举报

导航