Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4524117
  • 博文数量: 1148
  • 博客积分: 25453
  • 博客等级: 上将
  • 技术积分: 11949
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 21:14
文章分类

全部博文(1148)

文章存档

2012年(15)

2011年(1078)

2010年(58)

分类: C/C++

2011-05-12 18:28:21

指针有两个属性

指向变量/对象的地址长度

    但是指针只存储地址,长度则取决于指针的类型,编译器根据指针的类型从指针指向的地址向后寻址指针类型不同则寻址范围也不同,比如:int *从指定地址向后寻找4字节作为变量的存储单元  double *从指定地址向后寻找8字节作为储存单元


简单代码:
  1. #include <stdio.h>

  2. int main()
  3. {
  4.     int k;          &k=0xbfa1776c   栈,从高到低,int 4 个字节  
  5.    int *ptr=NULL&ptr=0xbfa04b28  取 指针本身地址
  6.    int m;               &m=0xbfa17764

  7.     printf("address k=%p\n",&k);
  8.     printf("address ptr=%p\n",&ptr);   //ptr本身地址
  9.     printf("address m=%p\n\n",&m);
  10.     k=3;
  11.     ptr=&k;

  12.     printf("address k=%p\n",&k);
  13.     printf("address ptr=%p\n",ptr); //取 ptr 指向的 地址
  14.     printf("address m=%p\n",&m);

  15.     return 0;
  16. }

  1. ywx@yuweixian:~/yu/data-struct/c$ ./main
  2. address k=0xbfa1776c
  3. address ptr=0xbfa04b28
  4. address m=0xbfa17764

  5. address k=0xbfa1776c
  6. address ptr=0xbfa1776c
  7. address m=0xbfa17764




阅读(672) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~