C语言指针重点
2024-10-09 18:09:18
指针
指针与一维数组
万能公式
- p[i] = *(p+i) = (i+p) = i[p]
&p[i] == &((p+i))== p+i
指针与二维数组
二维数组万能公式: ((p+i)+j)=a[i][j]
- 对于一维数组而言,array + i 是array[i]的地址
- 二维数组--->本质上就是n行个的一维数组--->每个有m列的一维数组
- 行指针:a+i = &a[i] 即指向一行的指针
- 列指针:a[i] = *(a+i) = &a[i][0] 即指向一列的指针
上述行指针与列指针的数值相同,但意义摆在那了,并不同。
下面举一个例子:
int a[3][4];
a+1 则是行指针
*a则是列指针 参考一维数组与指针万能公式
a[1][0] 就是一个y[0]
a[1][1] 就是一个y[1] <---y+1
这个y就是一个普通的数组了
二维数组中
a[1]+1 ==>跨一行 行指针
*(a+1)+1 ==>跨一列 列指针
二维数组做形参:a[][2] 前一个可省,后一个不可省
行指针
定义形式:数据类型(指针名)[一维数组维数]
eg.int (p)[4];
p是行指针, *p+j则是列指针
而
int *p[4];
数组中每个元素都是个指针;
传递任意维数的数组本质上就是传递指向数组中的第一个元素的指针变量!
最新文章
- Laravel 5.3 登录注册底层实现详解
- UVa 12166 修改天平
- Java中事务的概念
- 详解spring事务属性
- segmentfault.com mongo出识以及对数组的操作
- Java 反射机制及Annotation
- the serializable class XXX does not declare a static final seriaVersionUID...的问题
- linux内核2.4.x网络接口分析层次图
- CAS SSO:汇集配置过程中的错误解决方法
- 关于ajaxfileupload.js一些问题和上传图片就立即显示图片功能
- HDOJ的题目分类
- 【笔记】虚拟机用Xshell登陆报错“ssh服务器拒绝了密码”解决方法
- console报错类型
- go语言调度器源代码情景分析之五:汇编指令
- A + B 问题
- 到底什么时候才需要在ObjC的Block中使用weakSelf/strongSelf
- cvc-complex-type.2.4.d: 发现了以元素 'd:skin' 开头的无效内容。此处不应含有子元素。
- 『ACM C++』 Codeforces | 1066B - Heaters
- devstack环境中不能创建cinder volume
- BIEE-CSS样式大全