指针的初始化

本文只是笔者方便记忆而整理的,关于c指针的具体用途网上有很多很棒的博客,我这只是晨星之比皓月而已

指针变量的初始化方法:

指针变量的初始化的方法有两种:定义的同时初始化和定义后再初始化。

1.定义的同时初始化:

1
2
int a = 233;
int *p = &a;

2.先定义后初始化:

1
2
3
int a = 233;
int *p;
p = &a;

3.把指针初始化为NULL

1
2
int *p = NULL;
*p = 233;

不合法的初始化:

1.指针变量不能被赋予一个整数值(因为我们不知道这个整形常亮是内存的那快地址)

1
2
int *p;
p = 233; //错误写法

2.被赋值的指针变量前不能再加“*”

1
2
int *p, a = 233;
*p = &a; //错误写法

注意:

1.多个指针变量可以指向同一个地址

2.指针的指向是可以改变的

1
2
3
4
int a = 233;
int *p = &a;
int b = 2333;
p = &b; //修改方向

3.指针没有初始化时里面是一个垃圾值,这时候我们这是一个野指针

野指针可能会导致程序崩溃

野指针可能会访问你不该访问的地址