#include <iostream>
#include <iomanip>
using namespace std;//method first//
//直接用二维数组的形式
void fun(int a[3][4])
{for(int i=0; i<3; ++i){for(int j=0; j<4; ++j){cout<<"a["<<i<<"]["<<j<<"]="<<setw(3)<<a[i][j]<<"\t";}cout<<endl;}
}/method second//
//用指向数组的指针
void fun1(int (*p)[4])
{for(int i=0; i<3; ++i){for(int j=0; j<4; ++j){cout<<"p["<<i<<"]["<<j<<"]="<<setw(3)<<p[i][j]<<"\t";}cout<<endl;}
}///method third/
//形参采用指针,如int* p,而主函数进行特殊操作,使二维数组传值到函数里。
void fun2(int *p)
{for(int i=0; i<4; ++i){cout<<"p["<<i<<"]="<<setw(3)<<p[i]<<"\t";}cout<<endl;
}
method forth
//用指向指针的指针,如int** p,
void fun3(int **p)
{for(int i=0; i<3; ++i){for(int j=0; j<4; ++j){cout<<"p["<<i<<"]["<<j<<"] = "<<setw(5)<<p[i][j]<<"\t";}cout<<endl;}
}int main(int argc,char* argv[])
{int a[3][4]= {0,1,2,3,4,5,6,7,8,9,10,11};fun(a);cout<<endl;fun1(a);cout<<endl;for(int i=0; i<3; ++i){fun2(*(a+i));}
//      fun3(a);
//编译时发生错误。int [][]不能转换为int**
//error: cannot convert ‘int (*)[4]’ to ‘int**’ for argument ‘1’ to ‘void fun3(int**)’int row=3, col=4;
/create the 2d dynamic arrayint **p=new int *[row];for(int i=0; i<row; ++i){
//用p[i]指向第一个含有col个元素的数组///p[i]=new int[col];
//p[0]、p[1]、p[2]分别指向一个含有col个元素的数组,}for(int i=0; i<row; ++i){for(int j=0; j<col; ++j){p[i][j]=i*j+j+99;}}cout<<"p="<<p<<"  sizeof(p)="<<sizeof(p)<<" *p = "<<*p<<endl;cout<<"p[0]="<<p[0]<<"\t"<<"*(p+0) = "<<*(p+0)<<endl;
    cout<<"p[1]="<<p[1]<<"\t"<<"*(p+1) = "<<*(p+1)<<endl;cout<<"p[2]="<<p[2]<<"\t"<<"*(p+2) = "<<*(p+2)<<endl;int b[2][5]= {0};cout<<"b="<<b<<"\t"<<"b[0]="<<b[0]<<endl;fun3(p);//删除自己申请的空间for(int i=0; i<row; ++i){delete []p[i];cout<<"delete p["<<i<<"]"<<"\t";}cout<<endl;delete []p;cout<<"delete p"<<endl;cin.get();
//    return 0;}
//
//[root@yutong array]# g++ -o twodimarraypara twodimarraypara.cpp
//[root@yutong array]# ./twodimarraypara
//a[0][0]=  0   a[0][1]=  1     a[0][2]=  2     a[0][3]=  3
//a[1][0]=  4   a[1][1]=  5     a[1][2]=  6     a[1][3]=  7
//a[2][0]=  8   a[2][1]=  9     a[2][2]= 10     a[2][3]= 11
//
//p[0][0]=  0   p[0][1]=  1     p[0][2]=  2     p[0][3]=  3
//p[1][0]=  4   p[1][1]=  5     p[1][2]=  6     p[1][3]=  7
//p[2][0]=  8   p[2][1]=  9     p[2][2]= 10     p[2][3]= 11
//
//p[0]=  0      p[1]=  1        p[2]=  2        p[3]=  3
//p[0]=  4      p[1]=  5        p[2]=  6        p[3]=  7
//p[0]=  8      p[1]=  9        p[2]= 10        p[3]= 11
//p=0x1adf010  sizeof(p)=8 *p = 0x1adf030
//p[0]=0x1adf030        *(p+0) = 0x1adf030
//p[1]=0x1adf050        *(p+1) = 0x1adf050
//p[2]=0x1adf070        *(p+2) = 0x1adf070
//b=0x7fff0c6e79f0      b[0]=0x7fff0c6e79f0
//p[0][0] =    99       p[0][1] =   100 p[0][2] =   101 p[0][3] =   102
//p[1][0] =    99       p[1][1] =   101 p[1][2] =   103 p[1][3] =   105
//p[2][0] =    99       p[2][1] =   102 p[2][2] =   105 p[2][3] =   108
//delete p[0]   delete p[1]     delete p[2]
//delete p
//

二维数组作为函数的实参,定义函数形参的方法相关推荐

  1. python键盘输入数组_python 二维数组切割Python读取键盘输入的2种方法

    Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘.如下: 1.raw_input 2.input raw_input函数raw_input() 函数从标准输入读取一个行,并返 ...

  2. python二维数组换行输出_python 二维数组切割Python读取键盘输入的2种方法

    Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘.如下: 1.raw_input 2.input raw_input函数raw_input() 函数从标准输入读取一个行,并返 ...

  3. python二维数组的行和列_python 定义N行2列二维数组与赋值

    python中怎么用花括号定义一个5行4列的数组花括号是字典,不是数组. python:定义函数,输入一个m维数组X和一个整数n,输# Python3.6import numpy as npwhile ...

  4. php判断二维数组里值均为空,php中经典方法实现判断多维数组是否为空

    php中经典方法实现判断多维数组是否为空 复制代码 代码如下: //判断一个数组是否为空 /** array( ); 空 array( array( ), array( ), array( ) ); ...

  5. php指定键名排序,php二维数组指定其键名对其排序的方法

    安利个小李子先 $arr=[ '2'=>'red', '5'=>'green', 'name'=>'tom' ]; $other=[ '5'=>'new red', 'name ...

  6. java上三角数组_二维数组的三角填充 两种java实现的方法

    类似这种: 1 2 3 4 5 12 13 14 6 11 15 7 10 8 9 认为第二种方法简单还是第一种方法简单直接决定了你的水平. package test; /** * 二维数组 三角填充 ...

  7. php二维数组指定其键名对其排序的方法

    安利个小李子先 <?php $arr=['2'=>'red','5'=>'green','name'=>'tom' ];$other=[ '5'=>'new red', ...

  8. c语言sort函数排序二维数组,c++ - 如何使用stl sort函数根据第二列对二维数组进行排序? - 堆栈内存溢出...

    stl排序要求迭代器的rvalue作为参数传递. 如果你想使用sort函数,你必须在c ++ 11中编译并使用数组stl来存储数组. 代码如下 #include "bits/stdc++.h ...

  9. c语言二维数组每行最小值,编写一个函数,用于计算具有n行和m列的二维数组中指定列的平均值以及数组各行的和的最小值。...

    #include void function1(int arr[][100],int n,int m,int k) { int i; float sum=0; if(k>=m) { printf ...

  10. python定义二维数组_在python中定义二维数组

    原博文 2016-08-30 19:16 − 发表于 http://liamchzh.0fees.net/?p=234&i=1 一次偶然的机会,发现python中list非常有意思. 先看一段 ...

最新文章

  1. 每天一个linux命令(10):cat 命令
  2. 解释型语言与编译型语言的区别
  3. 【UML 建模】UML建模语言入门-视图,事物,关系,通用机制
  4. Struts 2常用的Ajax标签
  5. python 排序_Python 排序了解一下?
  6. jetson nano 系统镜像制作_参考备份Jetson Nano系统(该程序不完备,制作的image不可用,仅供)...
  7. 基于key/value+Hadoop HDFS 设计的存储系统的shell命令接口
  8. 95-230-028-源码-WordCount走读-获取ExecutionGraph
  9. Excel文档VBA代码自动删除
  10. python 中关于无法导入自己写的类。解决方法
  11. 移动通信原理学习笔记之三——抗衰落和链路性能增强技术
  12. 局域网oracle 速度慢,[转帖]局域网中其他用户感觉上网速度慢、网速卡
  13. 企业市场推广之网络营销运营策略探讨
  14. CSS SVG开关按钮切换网页白天和夜晚
  15. Vue中:error ‘XXXXX‘ is not defined no-undef解决办法
  16. matlab计算macd_[原创]基于MATLAB的一个简单的交易策略(基于MACD)的Matlab代码-经管之家官网!...
  17. 你知道吗:Android为何比iOS和WP慢?
  18. 后宫宛如传服务器维护,更新丨《后宫宛如传》1.17.0版本更新公告
  19. 计算机网络布线教学,计算机网络综合布线【基于项目的《网络综合布线》课程理实一体化教学思考】...
  20. python读取txt文件特定内容,并绘制折线图

热门文章

  1. HCIE Security SSL 备考笔记(幕布)
  2. NYOJ--91--阶乘之和
  3. Vue CLI安装 Vue项目创建 Vue Devtools安装
  4. stringstream 使用方法
  5. Reactor模式 NIO epoll
  6. 删除电脑中用强制删除不能删除的bat命令脚本
  7. ++与*优先级相同,按照从右至左的顺序计算
  8. java linux和windows下文件路径间隔符的写法——解决linux下程序在windows下运行时的上传文件出错问题...
  9. javascript是一门多线程的语言_如何理解JavaScript是一种单线程非阻塞脚本语言?...
  10. asp前端日历_ASP+JavaScript的完整的日历使用-ASP教程,ASP应用