10th

目录:
10           指针................................................................................................................... 1

10.1        地址指针的基本概念................................................................................... 1

10.2        变量的指针和指向变量的指针变量.............................................................. 2

10.2.1     定义一个指针变量................................................................................ 3

10.2.2     指针变量的引用................................................................................... 3

10.2.3     指针变量作为函数参数......................................................................... 7

10.2.4     指针变量几个问题的进一步说明......................................................... 10

10.3        数组指针和指向数组的指针变量................................................................ 13

10.3.1     指向数组元素的指针.......................................................................... 13

10.3.2     通过指针引用数组元素....................................................................... 14

10.3.3     数组名作函数参数.............................................................................. 16

10.3.4     指向多维数组的指针和指针变量......................................................... 22

10.4        字符串的指针指向字符串的针指变量......................................................... 25

10.4.1     字符串的表示形式.............................................................................. 25

10.4.2     使用字符串指针变量与字符数组的区别.............................................. 28

10.5        函数指针变量............................................................................................ 29

10.6        指针型函数............................................................................................... 30

10.7        指针数组和指向指针的指针....................................................................... 31

10.7.1     指针数组的概念................................................................................. 31

10.7.2     指向指针的指针................................................................................. 34

10.7.3     main函数的参数................................................................................. 36

10.8        有关指针的数据类型和指针运算的小结..................................................... 37

10.8.1     有关指针的数据类型的小结................................................................ 37

10.8.2     指针运算的小结................................................................................. 37

10.8.3     void指针类型..................................................................................... 38


 

10.1.1 有关指针的数据类型的小结

定义

   

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是一个指针变量,它指向一个指向整型数据的指针变量

10.1.2 指针运算的小结

现把全部指针运算列出如下:

1)        指针变量加(减)一个整数:

例如:p++p--p+ip-ip+=ip-=i

一个指针变量加(减)一个整数并不是简单地将原值加(减)一个整数,而是将该指针变量的原值(是一个地址)和它指向的变量所占用的内存单元字节数加(减)。

2)        指针变量赋值:将一个变量的地址赋给一个指针变量。

p=&a;        (将变量a的地址赋给p)

p=array;      (将数组array的首地址赋给p)

p=&array[i];   (将数组arrayi个元素的地址赋给p)

p=max;       (max为已定义的函数,将max的入口地址赋给p)

p1=p2;        (p1p2都是指针变量,将p2的值赋给p1)

注意:不能如下:

p=1000;

3)        指针变量可以有空值,即该指针变量不指向任何变量:

p=NULL;

4)        两个指针变量可以相减:如果两个指针变量指向同一个数组的元素,则两个指针变量值之差是两个指针之间的元素个数。

5)        两个指针变量比较:如果两个指针变量指向同一个数组的元素,则两个指针变量可以进行比较。指向前面的元素的指针变量“小于” 指向后面的元素的指针变量。

10.1.3 void指针类型

ANSI新标准增加了一种“void”指针类型,即可以定义一个指针变量,但不指定它是指向哪一种类型数据。



posted @ 2007-05-17 15:31  Edward Xie  阅读(406)  评论(1编辑  收藏  举报