指针变量学习笔记
指针变量学习笔记
是什么
指针变量是一种变量类型(好像是废话)(但是个人认为这句话特别重要)
指针变量的值:某一内存地址的编号(这个内存地址上存有一个变量,就说这个指针指向这个变量;如果这个内存地址上没有存任何东西,就说这个指针是空指针)
或许用一种类比的方法更容易理解:
你面前有五个袋子,从左到右依次排列,分别编号一二三四五;
定义一个int变量
int a=9
,假设存放在第三个袋子中。好,现在打开第三个袋子,你看到 “9”这个数字。定义一个指针变量p,指向a,假设指针p存放在第二个袋子中。好,现在打开第二个袋子,你看到的是 “第三个袋子” 这样一行字。
怎么用
声明
例如:声明一个指针p,这个指针p指向一个int类型的变量a,代码如下:
1 |
|
解释一下:int *p
里面int *
是变量类型,表示 “一个指向int类型变量的指针” ,p
是变量名,&a
中&是 “取址符号” ,&a
表示a的内存地址。
上面第二行代码意思就是:声明一个变量 p ,类型是指向int变量的指针,同时给这个变量赋值,值是一串内存地址,这个内存地址上存放着一个int变量a。
或许第二行写成如下形式更容易理解:
1 |
|
按照上面的类比,&a就是“第三个袋子”这样一行字,p=&a就是将这个地址名赋给了p
取值
用到取值符号*
:
p是这个指针变量的变量名,加上* 变成 *p 意思就是 “p所指地址上的变量的值”
按照上面的类比,p就是”第三个袋子“这一行字,*p就是“第三个袋子里面的值”,也就是说 *p == a是成立的。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!