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

二维数组操作

代码结构
在这里插入图片描述
main.c

#include <stdio.h>
#include <stdlib.h>#define LEN 100int main()
{//通过指针引用多维数组# if 1//定义多维数组int a[3][5] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};int row = sizeof(a) /sizeof(a[0]);int colum = sizeof(a[0]) / sizeof(a[0][0]);printf("row = %d, colum = %d\n", row, colum);//定义函数打印二维数组extern void PrintTwoDimArr(void* arr, int row, int colum);PrintTwoDimArr(a, row, colum);printf("修改后的二维数组为:\n");//改变二维数组中的元素值extern void ChangeValTwoDimArr(void* arr, int row, int colum);ChangeValTwoDimArr(a, row, colum);PrintTwoDimArr(a, row, colum);#endifreturn 0;
}

test1.c

#include <stdio.h>
#include <stdlib.h>
//定义函数打印二维数组
/* * 这里的技巧是,* 这个指针的类型不太好定义,因此这里将指针的类型定义为void** 然后在背调函数中将指针转换为需要的类型,然后进行操作。*/
extern void PrintTwoDimArr(void* arr, int row, int colum)
{//printf("%s %s line %d\n", __FILE__, __FUNCTION__, __LINE__);int (*p)[colum] = arr;for(int i = 0; i < row; i++){//printf("%s %s line %d\n", __FILE__, __FUNCTION__, __LINE__);for(int j = 0; j < colum; j++){//printf("%s %s line %d\n", __FILE__, __FUNCTION__, __LINE__);//printf("%d\t", p[i][j]);printf("%d\t", *(*(p + i) + j));}printf("\n");}
}//改变二维数组中的元素值
extern void ChangeValTwoDimArr(void* arr, int row, int colum)
{int (*p)[colum] = arr;for(int i = 0; i < row; i++){for(int j = 0; j < colum; j++){p[i][j] = -p[i][j];}}
}

Makefile

main:main.c test1.cgcc -o $@ $^#./$@
clean:rm main
http://www.lryc.cn/news/485981.html

相关文章:

  • uniapp设置tabBar高斯模糊并设置tabBar高度占位
  • 上市公司代理成本数据大全(第一类和第二类代理成本均有)1991-2023年
  • CA-Markov模型概述及其MATLAB实现
  • 《生成式 AI》课程 第3講 CODE TASK执行文章摘要的机器人
  • HCIP-HarmonyOS Application Developer 习题(二十二)
  • c++原型模式(Prototype Pattern)
  • 联通大数据面试题及参考答案
  • MySQL数据库:SQL语言入门 【3】(学习笔记)
  • uniapp 实现tabbar分类导航及滚动联动效果
  • 华为数字化转型的本质为何是管理变革
  • 【数据库】深入解析慢 SQL 的识别与优化策略
  • Linux从入门到精通
  • 代码随想录算法训练营第四十四天|Day44 动态规划
  • C++初阶——优先队列
  • 10月月报 | Apache DolphinScheduler进展总结
  • WSL--无需安装虚拟机和docker可以直接在Windows操作系统上使用Linux操作系统
  • 《AI 之影》
  • QT5.14*解决QSslSocket::connectToHostEncrypted: TLS initialization faile
  • 高效分支管理规范
  • 跟我学C++中级篇——RAII
  • C语言第九周课——经典算法
  • 【Pikachu】XML外部实体注入实战
  • vue2项目中在线预览csv文件
  • 基于VUE实现语音通话:边录边转发送语言消息、 播放pcm 音频
  • PMP--一、二、三模、冲刺--分类--变更--技巧--特点
  • CSS Grid 布局实战:从入门到精通
  • git创建远程仓库,以gitee码云为例GitHub同理
  • Java爬虫(HttpURLConnection)详解
  • 基于STM32的智能停车管理系统设计
  • 【循环神经网络】