C/C++教程

学习c++——二维数组的访问

本文主要是介绍学习c++——二维数组的访问,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

今天在做练习的时候发现的问题。

c++内的二维数组在解析的时候将其看做为数组元素为 一维数组的一维数组。

也即是类似于numpy里的结构   [ [],[],[] ]

而不是一般书上示意图画的.  

[],

[],

[]

结构。

 

所以用指针访问元素的时候,当访问下一行应该是 递增一个单个数组长度的值。代码28行

 

 1 #include "stdio.h"
 2 #include "stdlib.h"
 3 int main()
 4 {
 5     int N, Number[10];
 6 
 7     scanf("%d", &N);
 8     for (int i=0;i<N;i++){
 9         scanf("%d", &Number[i]);
10     }
11 
12     int Matrix[N][N];
13     for (int i=0;i<N;i++){
14         for(int j=0; j<N;j++){
15             Matrix[i][j] = Number[i]*10+Number[j];
16 
17         }
18     }
19 
20     int Sum = 0;
21 
22     int* y= (int*) Matrix;
23     for (int i=0;i<N;i++){
24         for(int j=0; j<N;j++){
25             if(i!=j)
26                 Sum += y[j];
27             }
      // ++y 错误
28         y = y+N;  // 递增一个数组的长度
29         }
30     printf("%d\n", Sum);
31 
32     return 0;
33 }

 

 

(3条消息) C++中指针访问二维数组_Dear_Jia的博客-CSDN博客_c++指针访问二维数组

这篇关于学习c++——二维数组的访问的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!