首页 > 其他分享 >二维数组的传参方式

二维数组的传参方式

时间:2023-06-23 23:33:37浏览次数:35  
标签:传参 arr int 元素 二维 数组 第二行 test

1.传数组整体

格式:

(1)给函数传参时,用数组名arr;

(2)函数定义时,用int arr[3][5]接收;

(3)在函数中打印元素时,用arr[1][1]。

void test(int arr[3][5]) {
	printf("%d", arr[1][1]);
}
int main() {
	int arr[3][5] = { {1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7} };
	test(arr);
	return 0;
}

2.传首元素地址

二维数组的首元素地址为第一行数组的指针(把二维数组看作元素为一维数组的一维数组)

格式:

(1)给函数传参时,用数组名arr;

(2)函数定义时,用int (*p)[5]接收,表示传过来的是数组指针;

(3)在函数中打印元素时,用(*(p+1))[1]或者(*(*(p + 1)) + 1)。

void test(int (*p)[5]) {
	printf("%d\n", (*(p+1))[1]); //p+1表示第二行数组的地址,*(p+1)表示第二行数组,(*(p+1))[1]表示第二行数组的第二个元素
	printf("%d\n", *(*(p + 1) + 1)); //同理,*(p+1)表示第二行数组,即第二行数组的首元素地址,*(p + 1) + 1,表示第二行数组的第二个元素的地址,*(*(p + 1) + 1)表示第二行数组的第二个元素
}
int main() {
	int arr[3][5] = { {1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7} };
	test(arr);
	return 0;
}


标签:传参,arr,int,元素,二维,数组,第二行,test
From: https://blog.51cto.com/u_16102535/6539542

相关文章

  • 【js学习笔记三】数组去重的第二种方式indexof
     目录前言导语代码部分 运行结果总结前言   我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷导语......
  • 后缀数组
    ......
  • 【剑指Offer】37、数字在排序数组中出现的次数
    【剑指Offer】37、数字在排序数组中出现的次数题目描述:统计一个数字在排序数组中出现的次数。例如,输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于数字3在该数组中出现了4次,所以函数返回4。解题思路:既然输入的数组是有序的,所以我们就能很自然的想到用二分查找算法。以题目中给的数......
  • 2023-06-22:一所学校里有一些班级,每个班级里有一些学生,现在每个班都会进行一场期末考试
    2023-06-22:一所学校里有一些班级,每个班级里有一些学生,现在每个班都会进行一场期末考试给你一个二维数组classes,其中classes[i]=[passi,totali]表示你提前知道了第i个班级总共有totali个学生,其中只有passi个学生可以通过考试给你一个整数extraStudents,表示额外有......
  • postgresql数组数据
    一个包含数组的数据表插入数组有两种方法1:'{张三,李四,王五}'2:  array['张三','李四','王五']用单引号,不用双引号insertintopublic.hi6values('2023-9-22',array['张三','李四'],'{王五,孙六,黄七}','test4'); 查询嘉宾......
  • 定义一个JS数组去重的方法
    1、思路:定义一个新数组,并存放原数组的第一个元素,然后将元素组一一和新数组的元素对比,若不同则存放在新数组中functionunique(arr){letnewArr=[arr[0]];for(leti=1;i<arr.length;i++){letrepeat=false;for(le......
  • 定义一个长度为10 的数组并赋值为0-9
    一、使用Array.applyletarr=Array.apply(null,{length:10}).map((item,index)=>{   returnindex;   });console.log(arr);//(10)[0,1,2,3,4,5,6,7,8,9]//原理:Array.apply的第二个参数是类数组调用Array.apply(null,{length:10})等于生成了长......
  • 数组越界导致的死循环,以及对存储方式的思考
    一、bug有如下代码:intmain(){ inti=0; intarr[10]={1,2,3,4,5,6,7,8,9,10}; for(i=0;i<=12;i++){ printf("hehe\n"); arr[i]=0; } return0;}按正常思路,该代码会打印13个hehe,并把arr数组里的10个元素改为0,但为什么计算机会死循环打印无数个hehe?二、原......
  • Objective C数组的内存管理
    在addObj后及时释放所添加的objectNSMutableArray*array=[NSMutableArraynew];NSString*str=[[NSStringalloc]initWithFormat:@"a"];[arrayaddObject:str];[strrelease];[arrayrelease];也就是说当你吧str放进array的时候,相当于创建了一个str的副本,而这个副本......
  • 【剑指Offer】35、数组中的逆序对
    【剑指Offer】35、数组中的逆序对题目描述:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。即输出P%1000000007。输入描述:题目保证输入的数组中没有的相同的数......