[C++]指针学习总结

今晚重新看了一下C++的指针,总结如下:

有关数据类型的定义:
int i;//int类型变量
int *p;//指向int类型的指针变量
int a[n];//int型数组
int *p[n];//指针数组
int (*p)[n];//指向int型数组的指针
int func();//返回值类型为int的函数
int* func();//返回值为 指向int类型的指针变量 的函数
int (*p)();//指向返回值类型为int的函数
int **p;//指向指针的指针

对于指针类型p,p表示它所指向数据的地址,*p表示它所指向数据的值,&*p等价于p
对于普通类型i,i表示它的值,&i表示它在内存中的地址,*&i等价于i

指针的运算:
1.指针变量可以加/减一个整数
  p+i 表示 p+i*d (d表示p所指向的变量单元所占字节数)
2.指针变量赋值
  p=&a;//普通类型
  p=array;//数组类型
  p=&array[&];//数组的值
  p=max;//函数名
  p1=p2;//指针
3.指针可以有空值,表示指针不指向任何变量
  p=NULL 等价与 p=0 (因为系统已经定义#define NULL 0)
  注意p=0与p未赋值是不同的,未赋值表示p指向一个未知的单元
4.指针可以相减(如数组计算下标差),但不能相加(相加无意义)
5.指针可以比较,指向前面的元素的指针小于指向后面的元素的指针
6.不同类型的指针赋值需要强制转换类型
  p1=(int *)p2;
  p1=(char *)p2;
  p1=(double *)p2;

 

附件:

CppPointerExample.7z

下载地址:

http://pan.baidu.com/share/link?shareid=135850&uk=3238766853

posted @ 2013-01-02 21:23  喵星人の耳朵  阅读(289)  评论(0编辑  收藏  举报