当前位置: 首页 > article >正文

从零开始的c语言日记day37——数组指针练习

一、

取地址数组储存在了*p里,里面储存的是整个数组的地址但本质也是第一个元素的地址解引用后+1为4个字节所以就可以打印数组了。但一般不用这种方法

这样更方便一些

  • 打印多维数组

如果不用这样传参,用指针传参怎么做呢?


Main里函数的arr表示首元素地址也就是第一行的地址,第一行的地址是一个一维数组的地址。数组的地址放在数组指针,这个指针传到上面解释为指针(*p)指向5个元素,5个元素{5}为int类型,但因为下面只传了一行的地址所以函数只接收一行的地址。

Arr为一行元素地址那么+1就可以直接跳过一行到第二行

打印位置也可以改为p【i】【j】

P+1等一第一行的地址,当给他解引用*(p+i)和对第一行的地址解引用,相当于拿到了第一行,等于p{i}。*(p+i)相当于第i行的数组名arr{0},数组名相当于首元素地址,首元素地址就是起始位地址。

注意一维数组和二维是不一样的,一维数组的首元素地址是第一给,二维是第一行

练习

 判断下列程序是什么?

Int arr[5];                              arr是整形数组

Int *parr[10];                          parr1是整形指针数组

Int (*parr2)[10];                        parr2是数组指针

Int (*parr3[10])[5];                   parr3是存放数组指针的数组


http://www.kler.cn/a/149219.html

相关文章:

  • 【Kafka】集成案例:与Spark大数据组件的协同应用
  • React中 修改 html字符串 中某些元素的属性
  • Spring Boot中的自动装配机制
  • elementui el-table中给表头 el-table-column 加一个鼠标移入提示说明
  • Postman上传图片如何处理
  • Python 随笔
  • Maven——Maven使用基础
  • Apache Mina SSHD 和 JSch
  • 宠物网站的技术 SEO:完整指南
  • C# 委托/事件/lambda
  • opencv-python比较图像差异性方法
  • 基于LNMP快速搭建WordPress平台
  • 2. 两数相加
  • fastadmin学习笔记-----下拉框联动
  • 聊聊clickhouse分布式表的操作
  • 【JMeter】配置元件
  • git rebase冲突说明(base\remote\local概念说明)
  • C#多线程创建及线程的同步
  • 怎么安装php扩展
  • 【SpringCloud】微服务架构设计模式
  • 029 - STM32学习笔记 - ADC(三) 独立模式单通道DMA采集
  • 函数调用的形式写一个动态监控secure日志文件的sh脚本、过滤出secure日志异常用户名的ip并用iptables限制
  • Java基础之原码,反码,补码,位运算符
  • IDEA2023版本创建Sping项目只能勾选17和21,却无法使用Java8?(已解决)
  • Java设计模式系列:单例设计模式
  • 爬虫中XPath语法四个重要概念及示例