第十六节 关于指针的总结(十七)
指针的数据类型:
定义 | 含义 |
---|---|
int i; | 定义整型变量i |
int *p | p为指向整型数据的指针变量 |
int a[n]; | 定义整型数组a,它有n个元素 |
int *p[n]; | 定义指针数组p,它由n个指向整型数据的指针元素组成 |
int (*p)[n]; | p为指向含n个元素的一维数组的指针变量 |
int f(); | f为带回整型函数值的函数 |
int *p(); | p为带回一个指针的函数,该指针指向整型数据 |
int (*p)(); | p为指向函数的指针,该函数返回一个整型值 |
int **p; | P是一个指针变量,它指向一个指向整型数据的指针变量 |
指针运算的小结
现把全部指针运算列出如下:
1) 指针变量加(减)一个整数。例如:
p++
p--
p+i
p-i
p+=i
p-=i
一个指针变量加(减)一个整数并不是简单地将原值加(减)一个整数,而是将该指针变量的原值(是一个地址)和它指向的变量所占用的内存单元字节数加(减)。
2) 指针变量赋值:将一个变量的地址赋给一个指针变量。
- p=&a; /* 将变量a的地址赋给p */
- p=array; /* 将数组array的首地址赋给p */
- p=&array[i]; /* 将数组array第i个元素的地址赋给p */
- p=max; /* max为已定义的函数,将max的入口地址赋给p */
- p1=p2; /* p1和p2都是指针变量,将p2的值赋给p1 */
注意,不能如下:
p=1000;
3) 指针变量可以有空值,即该指针变量不指向任何变量:p=NULL;
4) 两个指针变量可以相减:如果两个指针变量指向同一个数组的元素,则两个指针变量值之差是两个指针之间的元素个数。
5) 两个指针变量比较:如果两个指针变量指向同一个数组的元素,则两个指针变量可以进行比较。指向前面的元素的指针变量“小于” 指向后面的元素的指针变量。
void指针类型
ANSI新标准增加了一种“void”指针类型,即可以定义一个指针变量,但不指定它是指向哪一种类型数据。
posted on 2015-04-06 17:33 chunlanse2014 阅读(131) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现