Chinaunix首页 | 论坛 | 博客
  • 博客访问: 186124
  • 博文数量: 34
  • 博客积分: 869
  • 博客等级: 准尉
  • 技术积分: 375
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-08 15:55
文章分类

全部博文(34)

文章存档

2012年(34)

我的朋友

分类: C/C++

2012-06-26 14:11:35

可以存储地址的变量称为指针。
指针的声明和初始化:
类型 *指针名;   int *point;
上面声明了一个整形指针,但没初始化,没有初始化的指针是非常危险的,所以应总是在声明指针的时候对
它进行初始化
int *point = NULL; NULL是标准库里面定义的一个常量,对于指针他表示0, NULL是一个不指向任何内存位置的值,这表示不指向任何对象的指针,不会以外的覆盖内存。

如果用已声明的变量地址初始化pointer 变量。可以使用寻址运算符& 例如:
int number = 10;
int *point = &number;
指针的声明没有什么特别之处,可以用相同的语句声明一般的变量和指针,
double value, *pVal, fnum;
声明了两个double变量value 和 fnum, 还有一个指针变量 *pVal

---------------------------------
通过指针来访问值:使用间接运算符*可以访问指针所指的变量值,这个运算符也称为取消引用运算符,因为它用于取消对指针的引用,假设声明以下的变量:
int number = 15;
int *point = &number;
int result = 0;
result = *point + 5;

----------
指向常量的指针
声明指针时,可以使用const关键字指定,该指针指向的值不能改变
long value = 9999L;
const long *pvalue = &value;
把pvalue 指向的值声明为const,所以编译器会去检测是否有语句试图修改pvalue指向的值,并将这些语句标记为错误,自我理解就是你可以用其他手段来改变指针变量指向的值,但不能是指针的方式来改变。
例子:
   long value = 9999L;
   const long *pValue = &value;
   value = 8888L;
   *pValue = 7777L; error (不允许)

-----------
常量指针可以使指针中存储的地址不能改变,此时,在指针声明中使用const关键字的方式略有区别,下面的
语句可以使指针总是指向相同的对象。
int count = 43;
int *const pcount = &count; 这个语句指定该指针存储的值(即地址)是不可改变的。
int item = 67;
pcount = &item; error

但是仍然可以使用pcount, 仍可以改变pcount指向的值。
*pcount = 345;

-----------------
可以创建一个常量指针,它指向一个常量值:
int item;
const int *const pitem = &item;
pitem 称为一个指向常量的常量指针,所以所有的信息都是固定不变的,不能改变存储在pitem中的地址,也不能使用pitem改变它指向的内容。





阅读(922) | 评论(0) | 转发(0) |
0

上一篇:c string

下一篇:vim

给主人留下些什么吧!~~