Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1371803
  • 博文数量: 284
  • 博客积分: 3251
  • 博客等级: 中校
  • 技术积分: 3046
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-26 17:23
文章分类

全部博文(284)

文章存档

2019年(2)

2018年(5)

2015年(19)

2014年(13)

2013年(10)

2012年(235)

分类: C/C++

2012-10-13 10:46:01

指针变量存储地址探索

看一段代码:

  1. #include <stdio.h>
  2.     void main(void)
  3.     {
  4.         int *a;
  5.         a=(int *)10;
  6.         printf("a===%d!!!\n",(int)a);
  7.     }
        printf:a===10!!!

        上面是一个简单的赋值程序,int *a定义了一个指向整形的指针变量a,a=(int *)10是给指针a的内存地址赋值10,这个值相当于指针指向的内存地址空间,printf("a===%d!!!\n",(int)a)是把指针a的内存地址里的数据打印出来。
       由上面可知:
       1、指针变量也是变量,和定义int、char变量一样的,定义时都会在栈中有个存储空间。
       2、也可以把指针变量和普通变量一样,给存储该变量的空间赋值,而所付的值就是该指针指向的地址空间。
       3、由2可知,刚定义的指针变量,如果不初始化,指针的存储空间可能不为空,也就是有可能指向了未知的地址空间,这样做很危险,所以定义后,一定要初始化,没有具体的就指向NULL。

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