【C 语言】数组 ( 多维数组操作模型 | 取某个数组元素地址 | 取某个数组元素值 )
文章目录
- 一、多维数组操作模型
- 1、取出某个数组元素地址
- 2、取出某个数组元素值
- 总结
一、多维数组操作模型
以
// 声明一个多维数组int array[2][3];
二维数组为例 ;
1、取出某个数组元素地址
第 000 行 , 第 111 列 元素地址 :
array[0] + 1
:array
代表 二维数组首元素地址 ,array[0]
是数组首元素值 , 该值是 一维数组 , 数组名是数组首元素地址 , 数组名 + 1 就是第 111 个元素的地址 ;*array + 1
:array
是 二维数组首元素地址 ,*array
是二维数组第 000 个元素的值 , 该值是 一维数组 ,*array
一维数组名是数组首元素地址 ,*array + 1
步长是一维数组元素大小 , 指向第 111 个元素地址 ;&a[0][1]
:a[0][1]
是 第 000 行 , 第 111 列 元素变量 , 取地址 , 就是取该变量的地址 , 也就是 第 000 行 , 第 111 列元素的地址 ;
第 iii 行 , 第 jjj 列 元素地址 :
array[i] + j
:array
代表 二维数组首元素地址 ,array[i]
是二维数组第 iii 元素值 , 该值是 一维数组 , 数组名是数组首元素地址 , 数组名 + j 就是第 jjj 个元素的地址 ;*(array + i) + j
:array + i
是 二维数组 第 iii 个元素地址 ,*(array + i)
是二维数组第 iii 个元素的值 , 该值是 一维数组 ,*(array + i)
一维数组名是数组首元素地址 ,*array + j
步长是一维数组元素大小 , 指向第 jjj 个元素地址 ;&a[i][j]
:a[i][j]
是 第 iii 行 , 第 jjj 列 元素变量 , 取地址 , 就是取该变量的地址 , 也就是 第 iii 行 , 第 jjj 列元素的地址 ;
2、取出某个数组元素值
取出某个元素值 , 就是在上面的 " 第 iii 行 , 第 jjj 列 元素地址 " 基础上 , 加上 *
取该地址对应的值 ;
第 iii 行 , 第 jjj 列 元素值 :
*(array[i] + j)
*(*(array + i) + j)
;a[i][j]
;
总结
上述不同操作的由来 , 就是因为 , 数组 既可以使用 [] 下标的方式访问 , 又可以使用 指针 * 符号访问 ;
二维数组中 , 还可以使用 [] 符号访问一维数组 , 之后再使用 * 指针访问一维数组中的元素 ;
【C 语言】数组 ( 多维数组操作模型 | 取某个数组元素地址 | 取某个数组元素值 )相关推荐
- R语言基于glmnet构建Logistic回归模型使用L1正则化并可视化系数及最佳lambda值
R语言基于glmnet构建Logistic回归模型使用L1正则化并可视化系数及最佳lambda值 Glmnet主要用于拟合广义线性模型.筛选可以使loss达到最小的正则化参数lambda.该算法非常快 ...
- arr和arr的区别以及数组首元素地址和整个数组地址的区别
1.arr和&arr 我们学过C语言可以知道,arr并不是C语言中的关键字,只是普通的用户定义标识符.是取array(数组)前三个字符来定义数组. 不管你用arr[]={0}还是a[]={0} ...
- 静态链表中指针表示的是() A 内存地址 B下一元素地址 C 下一元素在数组的位置
1.静态链表中指针表示的是() A 内存地址 B下一元素地址 C 下一元素在数组的位置 D 左.右孩子地址 答案:C 分析: 静态链表:数组的每一个下标都对应一个data和一个cur.数据域data用 ...
- 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)
相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...
- 二维数组数和指针操作的理解
#include<string.h> #include <stdio.h> int main(void) {int a[4][2] = { { 2,4 },{ 6,8 },{ ...
- 【C 语言】数据类型本质 ( 数据类型 | 数据类型本质 | 数组地址 | 数组首元素地址 )
文章目录 一.数据类型 二.数据类型本质 ( 数组地址 | 数组首元素地址 ) 一.数据类型 " 数据类型 " 是 数据的抽象 ; 相同类型的数据 , 表示形式相同 , 存储格式相 ...
- python二维数组去重复_python 去除二维数组/二维列表中的重复行方法
python 去除二维数组/二维列表中的重复行方法 之前提到去除一维数组中的重复元素用unique()函数,如果要去除二维数组中的重复行该怎么操作呢? import numpy as np arr = ...
- 【C语言指针】 回调函数、冒泡函数模拟实现qsort、指针和数组笔试题解析
目录 一.回调函数 定义: 用回调函数形式实现加法运算 二.qsort 函数参数: void指针 用qsort排序整型和结构体 用冒泡函数模拟实现qsort,排序整型和结构体 三.指针和数组笔试题解析 ...
- 【C 语言】数组 ( 数组相关地址 | 数组首元素地址 | 数组地址 )
文章目录 一.数组相关地址 1.数组首元素地址 2.数组地址 二.代码示例 一.数组相关地址 数组首元素地址 与 数组地址 值相等 ; int array[10]; 其中 array + 1 的值是 ...
最新文章
- elasticsearch数据长期保存的方案
- python学不会的表情包-python这么简单 为何这么多人学不会
- 删除安装的mysql数据库文件_安装/删除MySQL数据库
- android怎么打开wifi的组播功能
- 请在贵网站的根目录下部署一个文件_使用 github pages, 快速部署你的静态网页
- 在Leangoo里怎么设置看板周期?
- 华为网络设备上的常用安全技术(一)
- 201609-1-最大波动
- IEEE会议Latex模板下载教程
- java解析MT940报文,swift MT报文解析处理
- win7下如何显示缅文和使用缅文输入法?
- ckplayer6.8 php播放,ckplayer官方版下载-ckplayer播放器v6.8 最新版 - 极光下载站
- 阿帕奇apache-apollo-1.7.1-windows-distro
- 2019.05 随笔
- Mac访问微软远程桌面Microsoft Remote Desktop For Mac
- vue2路由手动创建二级路由路由传参路由守卫打包上线
- gitbook 插入图片_【整理】Gitbook和Gitbook Editor使用心得
- 计算机导师名人,天哪,这些名人的老师竟然也这么牛!
- java银行驻场开发,满满干货指导
- 主动变被动9个例句_【语法课堂】全面了解被动语态的特殊用法考点总结