一、有关指针的数据类型的小结
定义 | 含义 | 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等(指向上一个元素或者指向下一个元素) 2、指针变量赋值 将一个变量地址赋给一个指针变量, 例如: p = &a; | 将变量a的地址赋给p | p = chai; | 将数组chai首元素地址赋给p | p = &chai; | 将数组chai第i个元素的地址赋给p | p = max; | max为已定义的函数,将max的入口地址赋给p | p1 = p2; | p1和p2都是指针变量,将p2的值赋给p1 |
3、指针变量可以有空值,即该指针变量不指向任何变量, 可以这样表示:P =NULL; //NULL宏定义其值为0 4、两个指针变量可以相减 如果两个指针变量都指向同一个数组中的元素,则两个指针变量值之差是两个指针之间的元素个数 5、两个指针变量比较 若两个指针指向同一个数组的元素,则可以进行比较。 指向前面的元素的指针变量“小于”指向后面元素的指针变量。
三、关于void类型 1、Void真正发挥的作用在于: (1)对函数返回的限定, (2)对函数参数的限定; 例如:void abc(void); 2、Void指针 ANSIC新标准增加了一种“void”指针类型,即不指定他是指向哪一种类型数据的指针变量。 例如:void *p; 表示指针变量p不指向一个确定的类型数据,它的作用仅仅是用来存放一个地址。 Void指针他可以指向任何类型数据。也就是说,可以用任何类型的指针直接给void指针赋值。但是,如果需要将void指针的赋值给其他类型的指针,则需要进行强制转换。
|