指针数组传参

指针数组作为参数传递可实现传递第二维不确定的二维数组

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define frewri freopen("1.ou","w",stdout)
const int maxn=3e5+7;
const ll mod=1e9+7;
int ar[maxn],n,m,k;
int arr[10][10];

void func(int *aa[],int n){
    for(int i=0;i<n;i++){
        for(int j=0;j<10;j++)cout<<aa[i][j]<<" ";cout<<endl;
    }
}
int a2[10][10];
int main()
{
    int *aa[maxn];
    for(int i=0;i<10;i++){
        for(int j=0;j<10;j++)arr[i][j]=i+j;
    }
    for(int i=0;i<10;i++){
        for(int j=0;j<10;j++)a2[i][j]=i+j+100;
    }
    for(int i=0;i<10;i++)aa[i]=arr[i];
    func(aa,10);
    for(int i=0;i<10;i++)aa[i]=a2[i];
    func(aa,10);

    return 0;
}

原文地址:https://www.cnblogs.com/wa007/p/10228920.html

时间: 2024-10-28 21:06:02

指针数组传参的相关文章

c/c++ 数组传参

在c/c++中,在进行数组传参时,数组的元素个数默认是不作为实参传入调用函数,也就是说c/c++ 不允许向函数传递一个完整的数组作为参数 实例: 1.形式参数是一个指针,实参包括数组长度: 1 void myFunction(int *param,int length){ 2 for (int i = 0; i<length - 1; i++) 3 { 4 cout << param[i] << "\t"<<endl; 5 } 6 } 2.形式

关于C语言中二维数组传参————————【Badboy】

直接上代码: #include void Fun(int *a[],int m,int n)// { printf("%d\t",*a);//[0][0] /* int e[2][2][2]={8,7,6,5,4,3,2,1}; int *f,***g; g=e; f=e;//有警告,但不会报错 printf("%d\n",*f); */ } /*解释: Fun()中的int *a[2]表示定义指针数组a[2],a[0],a[1]存储的都是指针, a表示的是数组的首

C++中二维数组传参的方法详解

C++中二维数组传参的方法详解 首先需要明确,C++中其实没有多维数组,所谓的多维数组,其实就是数组的数组: 另外,数组中元素的个数也是数组类型的一部分. 当一个数组的元素仍然是数组时,通常使用2个维度来定义它,一个数组表示数组本身的大小,另一个维度表示其元素大小(它的元素也是数组): int ia[3][4]; //大小为3的数组,每个元素是含有4个整数的数组 int (*p)[4] = ia;//p指向含有4个整数的数组(指向第一个内层数组) 1 将给定第二维长度的二维数组作为形参传递 #i

WebFlux系列(九)WebClient Uri列表、数组传参

#Java#Spring#WebFlux#Reactor#WebClient#Uri#传参#数组#列表# WebClient Uri列表.数组传参 视频讲解:  https://www.bilibili.com/video/av83351261/ 服务端: @RestController class EmployeeController { @GetMapping("employee") public Mono<String> requestList(@RequestPar

结构体和数组传参注意

;数组的传参默认是传的数组元素的首地址,所以在函数内部是无法得到数组的大小的需要传一个size进来 int a = {1,2,3}; sum(a,sizeof(a)/sizeof(a[0])); //此处传的是数组的首地址 ;结构体当作参数的时候要传地址,否则编译器传的是副本会产生很大的内存拷贝

关于二维数组传参做形参(转)

二维数组的存储方式是和一维数组没什么区别,但是用二维数组做参数,它的形参该怎样写?要注意的是:函数中的形参其实就相当于一个声明,并不产生内存分配,形参的目的就是要让编译器知道函数参数的数据类型. 正确的是:void Func(int array[3][10]); void Func(int array[][10]);可以省略第一维的大小 错误的是void Func(int array[][].这样的用法只能在初始化时可以用);这样写也是错误:void Func(const int m,const

二位数组传参及二位数组动态分配问题

//二位数组参数传递 //1. void display1(int arr[][4], const int rows) { for (int i = 0; i < rows; i++) { for (int j = 0; j < 4; j++) { cout << arr[i][j] << ' '; } cout << endl; } cout << endl; } //2. void display2(int(*parr)[4], const

字符串连接,数组传参

http://zju.acmclub.com/index.php?app=problem_title&id=1&problem_id=1971 注意: 数组作为参数传递给函数F()时,可以在F中不指定数组内元素个数(F(char dst[],char src[]))的原因就在于: 编译函数时设置成函数接收的是数组的首地址,而不是一个具有实际元素个数的数组, 所以也不会进行边界检查. cpp代码: #include<iostream> #include<cstring>

C/C++ 的 指针/引用 传参

#include <stdio.h> //指针传值 void addOne(int *a) { printf("%8p\n",a); *a = *a+1; } //引用传值 void addOne2(int &a) { printf("%8p\n", &a); a++; } int main() { int nInt = 0; scanf_s("%d",&nInt); addOne(&nInt); pr