指针三要素
1正在自身类型, 指针指向的类型 ,指针指向的地址
数组指针 int(*p)[5]
指针数组 int *p[5]
二位数组
int a [3][4] ={1,2,3,4,5,6,7,8,9,10,11,12};
函数指针
void func(int a,int b){
printf("%d %d\n",a,b);
}
int main() {
func(20, 10);
void (*p)(int, int);
p = func;
p(10, 20);
return 0;
}
常量指针和指针常量
int const *p1 = &b; //const 在前,定义为常量指针
int *const p2 = &c; // *在前,定义为指针常量
常量指针是指针指向的是常量,它指向的
内容不能被改变,不能通过指针来修改它指向的内容,但是指针自身不是常量,它自身的值可以改变,
从而指向另一个常量。
指针常量是指指针本身是常量。它指向的地址是不可改变的,但地址里的内容可以通过指针改变。它
指向的地址将伴其一生,直到生命周期结束。有一点需要注意的是,指针常量在定义时必须同时赋初
值。