C/C++ 二维数组

简介: 使用C语言用到了二维数组 1 #include 2 #include 3 using namespace std; 4 5 void print_arr_fun1(int arr[][3], int row){ 6 for (int i = 0; i < row; ++i...

使用C语言用到了二维数组

 1 #include <iostream>
 2 #include <stdlib.h>
 3 using namespace std;
 4 
 5 void print_arr_fun1(int arr[][3], int row){
 6     for (int i = 0; i < row; ++i){
 7         for (int j = 0; j < 3; ++j)
 8             cout << arr[i][j] << " ";
 9         cout << endl;
10     }   
11 }
12 
13 void print_arr_fun2(int *arr, int row, int col){
14     for (int i = 0; i < row; ++i){
15         for (int j = 0; j < col; ++j)
16             cout << *(arr + i * row + j) << " ";    
17         cout << endl;
18     }   
19 }
20 
21 void print_arr_fun3(int **arr, int row, int col){
22     for (int i = 0; i < row; ++i){
23         for (int j = 0; j < col; ++j)
24             cout << arr[i][j] << " ";   
25         cout << endl;
26     }   
27 }
28 
29 int main(){
30     const int row = 2;  //这里是const
31     const int col = 3;
32     int arr1[row][col];
33     for (int i = 0; i < row; ++i)
34         for (int j = 0; j < col; ++j)
35             arr1[i][j] = i * col + j;
36 
37     cout << "print_arr_fun1---------------------------" << endl;
38     print_arr_fun1(arr1, row);
39     cout << "print_arr_fun2---------------------------" << endl;
40     print_arr_fun2((int*)arr1, row, col);
41 
42     cout << "print_arr_fun3---------------------------" << endl;
43     int **arr2 = (int**)malloc(sizeof(int*) * row);
44     //malloc
45     for (int i = 0; i < row; ++i)
46         arr2[i] = (int*)malloc(sizeof(int) * col);
47     for (int i = 0; i < row; ++i)
48         for (int j = 0; j < col; ++j)
49             arr2[i][j] = i * col + j;
50     print_arr_fun3(arr2, row, col);
51 
52     //free
53     for (int i = 0; i < row; ++i)
54         free(arr2[i]);
55     free(arr2);
56 
57     return 0;
58 }

输出:

print_arr_fun1---------------------------
0 1 2 
3 4 5 
print_arr_fun2---------------------------
0 1 2 
2 3 4 
print_arr_fun3---------------------------
0 1 2 
3 4 5 
相关文章
|
1月前
|
存储 编译器 C++
c++二维数组定义方程的讲解
c++二维数组定义方程的讲解
9 0
|
3月前
|
Go C++ Java
C/C++每日一练(20230412) 二维数组找最值、排序
C/C++每日一练(20230412) 二维数组找最值、排序
26 0
C/C++每日一练(20230412) 二维数组找最值、排序
|
4月前
|
存储 算法 C++
C++013-C++二维数组
C++013-C++二维数组
C++013-C++二维数组
|
4月前
|
C++ 容器
[C++] 对二维数组中的二维坐标点x,y进行排序
[C++] 对二维数组中的二维坐标点x,y进行排序
77 0
|
5月前
|
算法 C语言 C++
【九章斩题录】C/C++:二维数组中的查找(JZ4)
【九章斩题录】C/C++:二维数组中的查找(JZ4)
49 0
|
6月前
|
算法 C++
剑指offer(C++)-JZ4:二维数组中的查找(算法-搜索算法)
剑指offer(C++)-JZ4:二维数组中的查找(算法-搜索算法)
【C++百日刷题计划】Day2~数组的使用(请编程计算下列给出的二维数组周边元素之和)
【C++百日刷题计划】Day2~数组的使用(请编程计算下列给出的二维数组周边元素之和)
141 0
|
安全 C++ 开发工具
C++使用VARIANT实现二维数组的操作
VARIANT变量是COM组件之间互相通信的重要的参数变量之一,它可以容纳多种不同的类型,如short、long、double等,包括各类指针和数组。组件之间的互相调用是比较耗时的,尤其带当组件位于不同进程中时,因此,减少传递次数是提高效率的一种有效方法。
1081 0
|
C++
C/C++遍历二维数组,列优先(column-major)比行优先(row-major)慢,why?
C/C++遍历二维数组,列优先(column-major)比行优先(row-major)慢,why? 简单粗暴的答案:存在Cache机制! 稍微啰嗦一点:CPU访问内存(读/写,遍历数组的话主要是读),不是每次都直接从内存上操作,而是先看Cache里是否有所指定地址的值! 这个问题,stackoverflow上有人问过的,结论是:CPU读取内存某地址处的值,并不是每次都去内存中取出来,有时候会从cache里读取。
1297 0