文章目录
指针基础(Pointer Basic)
指针就是一个指向一个变量地址的变量。它能让数据传输更加轻盈快捷(从一个地方到另一个地方只需要复制地址信息,无需复制所有的数值),也能帮助c语言跳脱传值(pass by value)的限制,拥有引用(pass by reference)的能力。
- 在c语言中获取变量地址的方式
int x = 1;
int addressX = &x;
- 初始化指针
int *ptr = &x;
int: 表示指针指代地址的内容数据类型,即 x 的数据类型
*: 表示 ptr 这个变量是一个指针(*这个符号只要夹在 int 和 ptr 之间,怎么空格都没关系)
ptr: ptr 的值等于指代的地址,即 &x 或是 addressX
- 指针的反向赋值
int z = *ptr;
*ptr: 表示 ptr 指代的地址的变量, 即为 x
值得注意的是,这里的星号和之前初始化指针的星号不是一个星号,他们两个没有任何关系
- 通过指针改变变量值
*ptr = 2;
相当于是x = 2
多指针(Multi-Pointer)
指针不光可以指向一个变量,也可以指向另一个指针
int x = 3;
int *y = &x; // *y = x;
int **z = &y; // *z = y; **z = x;