Chinaunix首页 | 论坛 | 博客
  • 博客访问: 308174
  • 博文数量: 56
  • 博客积分: 2058
  • 博客等级: 中尉
  • 技术积分: 688
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-11 09:19
个人简介

code rush

文章分类

全部博文(56)

文章存档

2012年(2)

2011年(54)

分类: C/C++

2011-06-24 11:25:38

刚才很看到 *的用法,看的迷迷糊糊的。眼睛都花了。  于是写了个小程序玩玩。 辨析一下 *和&。

&可以用作取地址符,获取一个变量的地址,*是解引用符,用来获取地址变量里面的内容。

下面举几个例子:

  1. int x,y;

  2.     x=-2;
  3.     
  4.     printf("%x\n",x);
  5.     printf("%x\n",&x); //取得x的地址

  6.     y=&x;// y现在存的是 x的地址
  7.     printf("%x\n",*(int*)y);// 把y转化为一个int型的指针。 用最左的* 取得内容。
  8.     printf("%x\n",(*&y)); // 取得y的地址,再解引用。 就是 y的内容
  9.     printf("%x\n",*(int*)(*&y));// 取得y指向内容的内容。 就是所谓的指针的指针。
     (int*)y指向的int类型的数据的指针,这样y在每次+1 的时候步幅是 sizeof(int) .

      int *c=(int*)0x234565; //这么写也是可以的,不过,要保证这个地址是有意义的,并且可以有权限写。

总之,在指针的地址的使用上要注意保证数据的有效性。指针就是地址的映射,指针的内容就是地址存的东西。这也算是一种hash吧。哈哈。




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