有关指针的数据类型的小结
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 是一个指针变量,它指向一个指向整型数据的指针变量
指针运算的小结
现把全部指针运算列出如下:
- 指针变量加(减)一个整数: 例如:p++、p--、p+i、p-i、p+=i、p-=i
一个指针变量加(减)一个整数并不是简单地将原值加(减)一个整数,而是将该指针 变量的原值(是一个地址)和它指向的变量所占用的内存单元字节数加(减)。 - 指针变量赋值:将一个变量的地址赋给一个指针变量。
p=&a; (将变量 a 的地址赋给 p)
p=array; (将数组 array 的首地址赋给 p)
p=&array[i]; (将数组 array 第 i 个元素的地址赋给 p)
p=max; (max为已定义的函数,将 max 的入口地址赋给 p)
p1=p2; (p1和 p2 都是指针变量,将 p2 的值赋给 p1)
注意:不能如下: p=1000; - 指针变量可以有空值,即该指针变量不指向任何变量: p=NULL;
- 两个指针变量可以相减:如果两个指针变量指向同一个数组的元素,则两个指针变量值 之差是两个指针之间的元素个数。
- 两个指针变量比较:如果两个指针变量指向同一个数组的元素,则两个指针变量可以进 行比较。指向前面的元素的指针变量“小于” 指向后面的元素的指针变量。
void 指针类型
可以定义一个指针变量,但不指定它是指向 哪一种类型数据。
网友评论