变量 指针 地址
- 地址是数据(变量)储存的位置,地址也是数据。
- 存放地址的变量叫指针变量,简称指针。
指针变量的大小
- 在 位操作系统上地址用 位二进制整数表示,所以一个指针的大小为 字节;
- 在 位操作系统上地址用 位二进制整数表示,所以一个指针的大小为 字节。
指针的类型
可以有不同类型的指针,对应的地址大小不同,例如可以有int
类型的指针对应 位空间的地址,也可以有char
类型的指针,同理对应 位空间的地址。
指针的声明与使用
对于变量
- 指针的类型为类型名后加上一个
*
号,如int*
;
- 取得一个变量的地址可以使用取地址符
&
;
- 如果要访问指针指向的空间使用
*
号;
| int a=1; |
| int* aa=&a; |
| *aa=2; |
对于结构体
- 可以用
.
实现对结构体成员的访问,也可以用->
。形象「箭头」
| struct note{ |
| int id; |
| char w; |
| }a{1,'a'},b{2,'b'}; |
| int main(){ |
| note* tmp=&a; |
| (*tmp)=b; |
| (*tmp).id=1; |
| tmp->w='a'; |
| return 0; |
| } |
指针的偏移
指针可以和整数进行加减操作,作用是使其指向的地址偏移,具体偏移量与指针类型有关:如int
型指针每加 指针偏移 位,加 偏移 位;对于其他类型同理。
使用指针偏移访问数组
- 数组是一块连续的储存空间,直接使用数组名可以得到数组的起始位置即
arr[0]
的地址。
- 用指针访问数组中的元素时可以通过数组起始地址加上偏移量来访问。
p[4]
和*(p+4)
是访问arr[3]
等价的两种写法。
| int main() { |
| int arr[3]={1,2,3}; |
| int* p=arr; |
| *p=4; |
| p=p+1; |
| *p=5; |
| p++; |
| *p=6; |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程