词条 | 指针型数据 |
释义 | 一、有关指针的数据类型(见下表) 定义 含义 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; |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。