C :指针
指针
1. 指针与数组
数组:name[ ]; 数组名其实质相当于数组的首地址,name[ ] 相当于取第几地址的值
指针:*p ,声明一个指向(类型)的指针
p = name,p是一个地址,指向name的首地址
用法: *p == name[0] ;
*(p++) == name[1];
2.指针与函数
在函数的形参中使用
int name[10];
void fun(int *p, int n); // *p说明传入的是一个地址,也可用int p[],两种形式等价,后者还说明传入的是一个数组形式的整型
在调用函数时 fun( name,10); // 传入的是数组的地址,因此使用的是name
如果传入的不是一个数组,如 int num;一个数
则传入时需加上取址符&,fun(&num,10);
注意:传入的数组在函数中的操作可以被修改,若无意修改应使用const int声明
3.指针的操作
赋值、解引用、取址、指针与整数相加、递增指针、指针减去一个整数、递减指针、指针求差、比较
注意:
- 指针求差即两个指针相减,所得数是两指针所相差的类型数,如整型指针p1-p2=2,则地址相差2个int
- 指针递增递减操作,小心越界操作,即指针地址指到未定义范围
- 不要解引用未初始化的指针,如 int *p = 5,此时5的地址不知道会在何处。要么使用malloc()事先分配内存

浙公网安备 33010602011771号