指针型数据

王朝百科·作者佚名  2010-06-09  
宽屏版  字体:   |    |    |  超大  

一、有关指针的数据类型(见下表)

定义

含义

int i;

定义整型变量i。

int *p;

p为指向整型变量的指针变量。

int a[n];

定义整型数组a他有n个元素。

int *p[n];

定义指针数组p,它由n个指向整型数据的指针元素组成。

int (*p)[n];

p为指向含n个元素的一维数组的指针变量。

int f();

f为带回整型函数值的函数。

int *p();

p为带回一个指针的函数,该指针指向整型数据。

int (*p);

p为指向函数的指针,该函数返回一个整型值。

int **p;

p是一个指针变量,它指向一个指向整型数据的指针变量。

二、指针运算小结

1、指针变量加减一个整数

如:p++ p-- p+i p-i p+=i p-=i 等

实际含义如 p+i 代表地址计算: p+c*i , c为字节数,整型c=2、

实型c=4、字符型c=1。

值得注意的是:P++(或P--)所表示的是指针方向发生了改变而P+i(或P-i)表示的是指针方向不发生改变。

2、指针变量赋值

如:p=&a a为变量,p为指针变量

p=array array为数组名

p=&array

p=max max为函数名

p1=p2 p2为指针变量

注意:不能把一个整数或常数赋给p,如p=1000 同样也不能把p赋给整型变量,如i=p

3、指针变量可以赋空值

如: p=NULL; 实际NULL是整数0。

4、两个指针变量可以相减如两个指针变量指向同一个数组的元素(右图),

则 p2-p1=4-1=3但p1+p2无意义。

5、两个指针变量比较

若两个指针指向同一个数组的元素,则可以比较,

如: p1<p2 p1>p2

三、空类型指针

ANSI新标准增加了一种空类型指针,定义的一般形式为:

void * 变量名

具体使用时要做类型转换,如:

void *p; (int *)p;

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有