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

全部博文(1148)

文章存档

2012年(15)

2011年(1078)

2010年(58)

分类: C/C++

2011-05-14 09:36:41

      理解数据指针,最重要的也是最不容易弄清楚的并非指针变量,而是数组名这样遮遮掩掩着的指针常量。因为这种指针常量的类型往往并不那么明显。而如果不清楚一个数据的类型,那就表明对这个数据几乎一无所知。

    数组名不但具有指针的性质,同时也具有一些本身独有的性质。


int a[5];


a 表示 是数组的 首地址

sizeof(a),表示数组占用的内存空间大小  单位字节


  1. #include <stdio.h>

  2. int main()
  3. {
  4.     int a[5]; 占用栈空间:4*5=20 字节
  5.     
  6.     printf("address a is %p, \nsizeof(a) is %d\n",a,sizeof(a));
  7.                             
  8.     return 0;
  9. }


  1. ywx@yuweixian:~/yu/professional/3$ ./or
  2. address a is 0xbf9530bc,    a的地址
  3. sizeof(a) is 20           占用栈空间


   int a[5];” 所定义的“a”有这样的性质:有时“a”是 “int *”这样一个值,有时又表示 “int  [5]”这样连续存放5个“int”的内存。


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