C语言笔记 指针 数组

2023-11-03

C语言中 指针做函数参数传递二维数组有两种基本方法:

1、传递“数组指针”

#include <stdio.h>
void output( int (*pa)[3], int n )//这个函数只能输出n行3列的二维数组
{
    int i,j;
    for( i=0;i<n;i++ ){
        for( j=0;j<3;j++ )
            printf("%d ", pa[i][j] );
        printf("\n");
    }
}
void main()
{
    int a[2][3]={
        {1,2,3},
        {4,5,6}
    };
    output(a,2);
}

2、传递“指针数组”  先将二维数组的行指针存储到一个指针数组中,再将指针数组传递到子函数中去。

#include <stdio.h>
void output( int *pa[], int row,int col ) //这个函数更通用,但调用前,要做好准备工作。
{
    int i,j;
    for( i=0;i<row;i++ ){
        for( j=0;j<col;j++ )
            printf("%d ", pa[i][j] );
        printf("\n");
    }
}
void main()
{
    int a[2][3]={
        {1,2,3},
        {4,5,6}
    };
    int i;
    int *pa[2];
    for( i=0;i<2;i++ )
        pa[i]=a[i];
    output(pa, 2, 3);
}

转自https://zhidao.baidu.com/question/1605163421424468147.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言笔记 指针 数组 的相关文章

随机推荐

  • stats

    本篇介绍基础包stats中的一个函数nls 它的作用是求解非线性回归的待定参数 nls formula data start control algorithm trace subset weights na action model lo
  • 标准库类型sring

    1 string 类型表示可变长的字符序列 需要包含头文件 include 2 定义和初始化 string 对象 拷贝初始化 使用了 号 直接初始化 用 3 string 对象的操作 cin lt lt string 会忽略前面的空白的无效
  • Java访问数据库的速度瓶颈问题的分析及解决

    内容 速度瓶颈问题的提出 JDBC访问数据库的机制 不同模式的 JDBC接口的选择 Java程序中SQL语句格式的优化 软件模型中对数据库访问的设计模式的优化 将深入研究的问题 参考资料 关于作者 FoolsGarden SMTH 自由Ja
  • 解决VS Code连接远程服务器使用Python中的matplotiib包画图无法显示的问题

    项目场景 在使用VS Code连接远程服务器使用Python中的matplotiib包画图时 会出现无法显示的问题 问题描述 在直接执行画图程序时 会报错 RuntimeError Invalid DISPLAY variable 原因分析
  • [Java学习]报错:类 OperatorDemo01 是公共的, 应在名为 OperatorDemo01.java 的文件中声明

    搭建好环境 用notepad 编写完程序 打开cmd编译文件 算数运算符 public class OperatorDemo01 public static void mian String args int a 6 int b 4 Sys
  • 编译原理(第四版)复习 (一)

    第一章 编译概述 编译程序 将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序 解释程序 也是一种翻译程序 将源程序翻译并执行 边解释边执行 两者的区别 解释程序的执行过程不会生成目标程序 编译过程的5个阶段 词法分析 语法分析
  • 用Python实现进制转换,这一篇教程就够了

    Python 实现进制转换 一 导言 导语 在计算机进行数据交换时 常常会有一个进制转换的过程 我们知道计算机只认0 和 1 在内存系统中 基本基于二进制进行运算的 但是有时候数据过于庞大 为了方便存储管理 计算机会使用十六进制存储数据 但
  • GNU-ld链接脚本浅析

    0 Contents 1 概论 2 基本概念 3 脚本格式 4 简单例子 5 简单脚本命令 6 对符号的赋值 7 SECTIONS命令 8 MEMORY命令 9 PHDRS命令 10 VERSION命令 11 脚本内的表达式 12 暗含的连
  • web前后端分离

    1 介绍 参考链接 https www cnblogs com leotsai p vuejs front backend architecture html 前后端分离的话 则可以很好的解决前后端分工不均的问题 将更多的交互逻辑分配给前端
  • JDBC学习(四)时间类型

    在Java代码中 java sql包原则上不能出现在DAO以外的地方 数据库和java中的时间类型的对应关系 DATE gt java sql Date TIME gt java sql Time TIMESTAMP gt java sql
  • 概念基础:恶意软件混淆的方法

    2020 05 20 看了一些网站的内容 发现主要存在四种方式 xor 加壳 base64编码 rot13 arm的一个指令 1 2 分别是简答介绍了这集中方式 3 是一个实验室的工具 可以取出一些混淆的字符串 但是只支持pe格式 在原理方
  • Android和iOS 测试五个最好的开源自动化工具

    本文主要介绍Android和iOS 五个最好的开源自动化工具 这里整理了相关资料 希望能帮助测试软件的朋友 有需要的看下 自动化测试在产品测试上有着非常重要的作用 实现测试自动化有多种积极的方式 包括最大限度地减少测试执行时间 在关键的发布
  • 相约久久网 -- 有很多东西值得学习

    http www meet99 com 转载于 https www cnblogs com yqskj archive 2012 10 07 2714622 html
  • flutter 怎么实现app整体灰度

    今天举国哀悼 进入各种大厂的app也可以看到主色都变成灰色的了 作为程序员我们肯定会想怎么可以实现的 我简单研究了10分钟 flutter中只要在整体外面套一个ShaderMask 然后修改blendMode即可 核心代码 class My
  • CentOS7目录结构详细版

    原文地址 http www cnblogs com ellisonDon archive 2012 10 03 2710730 html 原文地址 https www cnblogs com ellisonDon archive 2012
  • SpringBoot集成ShardingJDBC系列【2】—— 基于yaml基本配置

    文章只负责讲解sharding的相关配置 springboot其他的配置自己解决 文章内容将分开发布 便于平时查阅 基于yaml基本配置 在application yml配置文件中对mybatis plus做简单的配置 这里不对Mybati
  • Flutter设置Container的高度随ListView或者GridView

    在做移动端的时候 很多时候会需要下图所示的需求 如图1美团外卖首页的一部分 先进行需求分析 这个模块可以设计成Container包含GridView GridView中子内容个数由后台数据控制 但是在直接写Container包含GridVi
  • 第130篇 在 OpenSea 上创建自己的 NFT 商店(2)

    本文介绍一种通过自己部署智能合约 在 OpenSea 上创建自己的 NFT 商店的方法 1 ERC721合约 写一个最简单的标准 ERC721 合约 源码 SPDX License Identifier MIT pragma solidit
  • java 简介

    java 简介 1991 年Sun公司的James Gosling 詹姆斯 高斯林 等人开始开发名称为 Oak 的语言 希望用于控制嵌入在有线电视交换盒 PDA等的微处理器 1994年将Oak语言更名为Java 1 java体系结构 j2s
  • C语言笔记 指针 数组

    C语言中 指针做函数参数传递二维数组有两种基本方法 1 传递 数组指针 include