指针 二维数组元素引用
二维数组元素指针引用
1.定义
2.数组指针和指针数组的区别
1.二维数组可以理解为是一个一维数组,不过每个数组元素又是一个一维数组
int a[2][3]={{1,2,3},{4,5,6}};
可以理解为,二维数组只有两个元素,即a[0]和a[1],只不过元素类型为一维数组
指向二维数组的指针(行指针)
格式:类型 (*指针名) [N]
N为数组的第二维长度
2.二维数组指针与指针型数组的区别
int a[][3] = { {1,2,3},{4,5,6} };
int *p0[3] = a; //错误,将一个二维数组赋给指针型数组
int(*p1)[3] = a; //正确
数组指针(也称行指针)
定义 int (*p)[n];
()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。
如要将**二维数组**赋给一指针,应这样赋值:
int a[3][4];
int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。p=a; //将该二维数组的首地址赋给p,也就是a[0]或&a[0][0]p++; //该语句执行过后,也就是p=p+1;p跨过行a[0][]指向了行a[1][ ]
比如要表示数组中i行j列一个元素:
*(p[i]+j)、*(*(p+i)+j)、(*(p+i))[j]、p[i][j]
优先级:()>[]>*
出处:
https://www.cnblogs.com/hongcha717/archive/2010/10/24/1859780.html
3.实现一个3*4阶矩阵转置 指针为形参
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<stdlib.h>
//定义一个3行4列的二维数组arr。
//定义一个函数func()完成矩阵转置,以数组指针作为参数。
//在func()函数内部,使用for循环完成矩阵转置
void func(int(*pa)[4], int(*pb)[3], int x, int y)
{int i, j;/*-------------------------begin------------------*/for(i=0;i<x;i++)for(j=0;j<y;j++){ *(pb[j]+i)=*(pa[i]+j);// *(*(pb+j)+i)=*(*(pa+i)+j);// pb[j][i]=pa[i][j];// (*(pb+j))[i]=(*(pa+i))[j];}/*--------------------------end-------------------*/printf("转置:\n");for (i = 0; i < y; i++){for (j = 0; j < x; j++){printf("%d\t", pb[i][j]);}printf("\n");}
}
int main()
{int i, j;int arr[3][4], brr[4][3];printf("输入二维数组的元素:\n");for (i = 0; i < 3; i++){for (j = 0; j < 4; j++){scanf("%d", &arr[i][j]);}}func(arr,brr,3,4);return 0;
}
另有:
数组元素访问 方法总结
指针 二维数组元素引用相关推荐
- 动态二维数组外圈元素值的和_C语言 | 用指向元素的指针变量输出二维数组元素的值...
例33:有一个3*4的二维数组,要求用C语言实现指向元素的指针变量输出二维数组个元素的值. 解题思路:二维数组的元素时整型的,它相当于整型变量,可以用int*型指针变量指向它.二维数组的元素在内存中是 ...
- 3 5的二维数组C语言程序,C语言及程序设计提高例程-33 二维数组元素的引用
贺老师教学链接 C语言及程序设计提高 本课讲解 输入输出二维数组元素 #include int main() { int s[3][5], i, j; printf("Input 3*5 ...
- C语言 指针+二维数组详解 (应付期末、考研的最强笔记,建议收藏)
哈喽!这里是一只派大鑫,不是派大星.本着基础不牢,地动山摇的学习态度,从基础的C语言语法讲到算法再到更高级的语法及框架的学习.更好地让同样热爱编程(或是应付期末考试 狗头.jpg)的大家能够在学习阶段 ...
- C语言一维/二维数组解引用难理解点以及一道难题
C语言指针相关的坑爹题 先来一点简单的 求下面各代码打印结果(32位环境): int a[3][4] = {0}; printf("%d\n",sizeof(a)); printf ...
- C语言二维数组元素的多种表示方法小结
C语言二维数组元素的多种表示方法小结 昨天,一个小可爱问我,为何函数中,数组可以改变主函数中的值,比如b[i],就可以改原来数组中的值.其实b[i] 等价于 *(b + i)也是通过地址间接更改的,小 ...
- php 数组元素往后移动,php 二维数组 元素移动
[已关闭问题] 关闭于 2014-11-20 16:02 二维数组元素如何实现,满足一定的条件,跳到下下个元素,不满足的话,顺序执行呢? 比如: header("Content-type:t ...
- C语言基础入门48篇_30_二维数组的定义与使用(二维数组的定义:type 数组名[行][列]、二维数组的初始化、二维数组的引用)
1. 二维数组的定义 type 数组名[行][列] 2. 二维数组的初始化 2.1 全部初始化为0 char chAry[2][3] = { 0 }; 实例: #include <stdio.h ...
- 编写一个函数get_average()获取整型数组元素的平均值。要求这个函数既可以用来求一维数组元素的平均值,也可以求二维数组元素的平均值。
题目内容: 编写一个函数get_average()获取整型数组元素的平均值.要求这个函数既可以用来求一维数组元素的平均值,也可以求二维数组元素的平均值.在main()函数中通过具体的一维数组Array ...
- 编程将一个二维数组元素变换为逆向存放,即按元素在内存中的物理排列位置,第一个元素变成倒数第一个元素,第二个元素变成倒数第二个元素,依此类推。
编程将一个二维数组元素变换为逆向存放,即按元素在内存中的物理排列位置,第一个元素变成倒数第一个元素,第二个元素变成倒数第二个元素,依此类推. 例如,原始二维数组为,逆向存放后变为.试建立一个类 ...
最新文章
- 张一鸣宣布卸任字节CEO!网友:完不成OKR被优化了!
- AI在这张“问卷”上首次超越人类,SuperGLUE被微软谷歌两家“攻破”
- 21.等值线图(Counter Plot)、Contour Demo、Creating a “meshgrid”、Calculation of the Values、等
- 【转】ROWNUM与ORDER BY先后关系
- LeetCode:Add Two Numbers
- redis 哨兵模式 cluster模式区别_Redis哨兵(Sentinel)模式快速入门
- 模拟纳指stock的小例子
- go TypeError: Failed to execute ‘fetch‘ on ‘Window‘: Request with GET/HEAD method cannot have body.
- 给大家安利一个买电脑好去处(内有福利)
- Runloop与autoreleasePool联系
- matlab:绘制box函数和高斯函数曲线并进行傅里叶变换
- Git问题解决方案:Pulling without specifying how to reconcile divergent branches
- PLC系统的选型以及应用方法
- 奥维使用天地图 疑似攻击解决方案、访问上限解决方案
- JMeter之BeanShell的变量使用方法
- 3. Kubernetes资源-概述
- 一个可以免费下载表情包的小程序
- Linux文件目录操作命令-mkdir命令
- 合肥python培训价格
- WIN10无法连接共享文件夹(文件处于共享状态,但未对检测到的连接做出响应)
热门文章
- 《穷查理宝典:查理·芒格智慧箴言录》读书笔记
- mysql优化(添加索引)
- 计算机网络sp,网络信号电涌保护器(sp-005dc10-rj45) Network signal surge protector (sp-005dc10-rj45)...
- 数据库课程表东南大学
- 乐华娱乐欲重返上市:毛利率走低,上半年利润下滑,韩庚为股东
- Mybatis的时间范围查询
- PTA L2-1 点赞狂魔
- Flash Builder 4.7 注册机完美激活方法
- 在计算机中输入输出系统的作用是什么,计算机主板上BIOS(基本输入输出系统)的作用是什么?...
- srm系统采购信息助力建筑安装行业