Chinaunix首页 | 论坛 | 博客
  • 博客访问: 197506
  • 博文数量: 77
  • 博客积分: 1749
  • 博客等级: 上尉
  • 技术积分: 810
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-28 18:27
文章分类
文章存档

2012年(28)

2011年(49)

分类: C/C++

2011-11-15 22:34:50

指针变量的赋值

指针变量同普通变量一样,使用之前不仅要定义说明, 而且必须赋予具体的值。未经赋值的指针变量不能使用, 否则将造成系统混乱,甚至死机。指针变量的赋值只能赋予地址, 决不能赋予任何其它数据,否则将引起错误。在C语言中, 变量的地址是由编译系统分配的,对用户完全透明,用户不知道变量的具体地址。 C语言中提供了地址运算符&来表示变量的地址。其一般形式为: & 变量名; 如&a变示变量a的地址。 变量本身必须预先说明。设有指向整型变量的指针变量p,如要把整型变量a 的地址赋予p可以有以下两种方式:

(1)指针变量初始化的方法 int a;

int *p=&a;

(2)赋值语句的方法 int a;

int *p;

p=&a;

不允许把一个数赋予指针变量,故下面的赋值是错误的: int *p;p=1000; 被赋值的指针变量前不能再加“*”说明符,如写为*p=&a 也是错误的。

struct some a;
struct some *a;
struct some a[2];
对于结构体,若想将结构体转换为字符串:            (char *)&a  ,求大小: sizeof(a)    ;
对于结构体指针,若想将结构体转换为字符串:     (char *)a     ,求大小:sizeof(*a)   ;
对于结构体数组,若想将结构体转换为字符串:     (char *)a,    ,求大小:sizeof(a)     ;
int a;
int *a;
int a[3];
对于整型,若想将整型转换为字符串:                   (char *)&a  ,求大小:sizeof(a)     ;
对于整型指针,若想将整型转换为字符串:            (char *)a     ,求大小:sizeof(*a) = sizeof(int)    sizeof(a)为8,是地址的大小;
对于整型数组,若想将整型数组转换为字符串:     (char *)a     ,求大小:sizeof(a) = 整个数组的大小    sizeof(*a)为a中第一个元素的大小;
阅读(767) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~