这一系列文章用于记录技术小白在学习道路上遇到的那些坑,在刚开始接触C系列的编程语言的时候,相信很多人都对指针感到头疼,笔者也一样,第一次的从入门到放弃就出现在这里,时隔很久之后,决定好好学习一下,明知山有虎偏向虎山行。
1、声明和初始化指针
指针是一种变量,其值是一个内存地址。 形式如下:
Type * pointerVariable;
Type * pointerVariable = address;
Type是任意类型、address是给定Type类型对象的地址。
注意:*号必须在标识符前面,address必须是和指针类型相同的对象的地址,指针可以被赋值为0,称为空地址,也可看作零指针变量。
int main()
{
int i = 10,
j = 20; //定义整数
int * iPtr,
* jPtr; //定义指针变量用于存放整数的地址
iPtr = &i;
jPtr = &j; //将i的地址赋值给指针变量iPtr,& 是取地址运算符
}
2、基本指针操作
(一)去引用和间接引用
指针变量只存储内存地址,通过指针访问内存地址的内容需要使用 * 号去引用。
* pointerVariable
在对指针去引用时指针不能为空,且指向内存一个特定位置,避免悬空指针问题。
在上面的示例代码中,iPtr 存放的是 i 的内存地址,那么 * iPtr 就相当于 i 的一个别