#数据结构 指针变量

指针变量是一种特殊的变量,它指向的是一个地址。

声明

空的指针

int *p=NULL;

指向一个变量的指针

int a;
int *p=&a;
int a;
int *p=NULL;
p = &a;//赋值,注意[ *p=&……(变量) ]或[ p=&……(值) ]是错误的
//正确的用法是[ *p=&……(值) ][ p=&……(变量) ]

无类型的指针

void *p

强制转换

(int*)p

注:int可换为任意类型

调用

指针类型 等价于 正常变量
*p 等价于 a
p 等价于 &a
*p=1 等价于 a=1

应用

1. 链表

见博客

2.数组作为函数参数

void function(int *p){

}

int main(){
    int a[max_n];
    function(a);
}

在函数里使用数组:
a[i] = p+i;
(p+i表示的不是地址加i而是跳过i个内存中的变量)