fundamentals of programming - kntu homepage webftp client · 2019. 10. 16. · 0 1 2 3 10 11 12 13...
TRANSCRIPT
![Page 1: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/1.jpg)
Fundamentals of Programmingsession 21
2D Arrays
![Page 2: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/2.jpg)
2D arrays
0 0 0 0 0 0
0 1 2 3 4 5
0 2 4 6 8 10
0 3 6 9 12 15
0 4 8 12 16 20
● tabular data● rows and columns
![Page 3: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/3.jpg)
2D arrays
0 0 0 0 0 0
0 1 2 3 4 5
0 2 4 6 8 10
0 3 6 9 12 15
0 4 8 12 16 20
0 5 10 15 20 25
https://advancedmathclubsk.weebly.com/matrices.html
![Page 4: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/4.jpg)
2D arrays
https://hiveminer.com/Tags/desert,isfahan/Recent
![Page 7: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/7.jpg)
Defining 2D arraysint a[3][4];
![Page 8: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/8.jpg)
Initializing 2D arraysint a[3][4] = {{1,3,5,7}, {2,4,6,8}, {4,11,-1,7}};
1 3 5 7
2 4 6 8
4 11 -1 7
![Page 9: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/9.jpg)
Initializing 2D arraysint a[3][4] = {{1, 3, 5, 7}, {2, 4, 6, 8}, {4,11,-1,7}};
printf("%d\n", a[1][2]);
1 3 5 7
2 4 6 8
4 11 -1 7
0
1
2
0 1 2 3
![Page 10: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/10.jpg)
2D arraysint a[3][4] = {{1, 3, 5, 7}, {2, 4, 6, 8}, {4,11,-1,7}};
printf("%d\n", a[1][2]);
1 3 5 7
2 4 6 8
4 11 -1 7
0
1
2
0 1 2 3
![Page 11: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/11.jpg)
2D arraysint a[3][4] = {{1, 3, 5, 7}, {2, 4, 6, 8}, {4,11,-1,7}};
printf("%d\n", a[i][j]);
a[0][0] a[0][1] a[0][2] a[0][3]
a[1][0] a[1][1] a[1][2] a[1][3]
a[2][0] a[2][1] a[2][2] a[2][3]
0
1
2
0 1 2 3
![Page 12: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/12.jpg)
2D arraysint a[3][4] = {{1, 3, 5, 7}, {2, 4, 6, 8}, {4,11,-1,7}};
printf("%d\n", a[0][0]);
1 3 5 7
2 4 6 8
4 11 -1 7
0
1
2
0 1 2 3
![Page 13: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/13.jpg)
Working with 2D arrays
1 3 5 7
2 4 6 8
4 11 -1 7
0
1
2
0 1 2 3
2darray.c
![Page 14: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/14.jpg)
Working with 2D arrays
1 3 5 7
2 4 6 8
4 11 -1 7
0
1
2
0 1 2 3
2darray.c
![Page 15: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/15.jpg)
Working with 2D arrays
1 3 5 7
2 4 6 8
4 11 -1 7
0
1
2
0 1 2 3
2darray2.c
![Page 16: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/16.jpg)
Working with 2D arrays
1 3 5 7
2 4 6 8
4 11 -1 7
0
1
2
0 1 2 3
2darray2.c
$ gcc 2darray2.c && ./a.out 13572468411-17
![Page 17: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/17.jpg)
Working with 2D arrays
1 3 5 7
2 4 6 8
4 11 -1 7
0
1
2
0 1 2 3
2darray3.c
![Page 18: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/18.jpg)
Working with 2D arrays
1 3 5 7
2 4 6 8
4 11 -1 7
0
1
2
0 1 2 3
2darray3.c
$ gcc 2darray3.c && ./a.out 124341156-1787
![Page 19: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/19.jpg)
Working with 2D arrays
1 3 5 7
2 4 6 8
4 11 -1 7
0
1
2
0 1 2 3
2darray4.c
![Page 20: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/20.jpg)
Working with 2D arrays
1 3 5 7
2 4 6 8
4 11 -1 7
0
1
2
0 1 2 3
2darray4.c
$ gcc 2darray4.c && ./a.out 1, 3, 5, 7, 2, 4, 6, 8, 4, 11, -1, 7,
![Page 21: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/21.jpg)
Working with 2D arrays
1 3 5 7
2 4 6 8
4 11 -1 7
0
1
2
0 1 2 3
2darray5.c
![Page 22: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/22.jpg)
Working with 2D arrays
1 3 5 7
2 4 6 8
4 11 -1 7
0
1
2
0 1 2 3
2darray5.c
$ gcc 2darray5.c && ./a.out 1, 3, 5, 7, 2, 4, 6, 8, 4, 11, -1, 7,
![Page 23: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/23.jpg)
Working with 2D arrays
1 3 5 7
2 4 6 8
4 11 -1 7
0
1
2
0 1 2 3
2darray6.c
$ gcc 2darray6.c && ./a.out 1, 3, 0, 0, 2, 4, 6, 8, 4, 0, 0, 0,
![Page 24: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/24.jpg)
Working with 2D arrays
1 3 5 7
2 4 6 8
4 11 -1 7
0
1
2
0 1 2 3
2darray7.c
$ gcc 2darray7.c && ./a.out 1, 3, 5, 7, 2, 4, 6, 8, 4, 11, -1, 7,
![Page 25: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/25.jpg)
Working with 2D arrays
1 3 5 7
2 4 6 8
4 11 -1 7
0
1
2
0 1 2 3
2darray8.c
$ gcc 2darray8.c && ./a.out 1, 3, 5, 7, 2, 4, 0, 0, 0, 0, 0, 0,
![Page 26: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/26.jpg)
Working with 2D arrays
1 3 5 7
2 4 6 8
4 11 -1 7
0
1
2
0 1 2 3
2darray9.c
![Page 27: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/27.jpg)
Working with 2D arrays
1 3 5 7
2 4 6 8
4 11 -1 7
0
1
2
0 1 2 3
2darray9.c
$ gcc 2darray9.c && ./a.out 1, 3, 0, 7, 2, 4, 0, 8, 4, 11, 0, 7,
![Page 28: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/28.jpg)
Store times table in a 2D array
1 2 3 4
2 4 6 8
3 6 9 12
0
1
2
0 1 2 3
timestable1.c
![Page 29: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/29.jpg)
Store times table in a 2D array
0
1
2
0 1 2 3
timestable1.c
$ gcc timestable1.c && ./a.out 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 10, 20, 30, 40, 50, 60, 70, 80, 90,100,
![Page 30: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/30.jpg)
Remember: 1D arrays in memory
a[3]
a[2]
a[1]
a[0]
2100
2096
2092
2088
a[6]
a[5]
a[4]
Memory
int a[7];
![Page 31: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/31.jpg)
How are 2D arrays stored in memory?
0 1 2 3
10 11 12 13
20 21 22 23
0
1
2
0 1 2 3
![Page 32: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/32.jpg)
0 1 2 3
10 11 12 13
20 21 22 23
0
1
2
0 1 2 3
row by row column by column
120100
2100
209620922088
Memory
122
2111
23133
22
3210
2100
209620922088
Memory
13121110
23222120
![Page 33: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/33.jpg)
0 1 2 3
10 11 12 13
20 21 22 23
0
1
2
0 1 2 3 120100
2100
209620922088
Memory
122
2111
23133
22
3210
2100
209620922088
Memory
13121110
23222120
Row major (C, C++, Pascal, ...)
Column major (Fortran, Matlab, R, ...)
![Page 34: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/34.jpg)
0 1 2 3
10 11 12 13
20 21 22 23
0
1
2
0 1 2 33210
2100
209620922088
Memory
13121110
23222120
Row major (C, C++, Pascal, ...)
![Page 35: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/35.jpg)
0 1 2 3
10 11 12 13
20 21 22 23
0
1
2
0 1 2 33210
3
210
Memory
13121110
23222120
Row major (C, C++, ...)
7
654
11
1098
a[0][1]a[0][2]a[0][j]
a[1][0]a[1][1]a[1][2]a[1][j]
a[2][j]
a[i][j]
![Page 36: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/36.jpg)
0 1 2 3
10 11 12 13
20 21 22 23
0
1
2
0 1 2 33210
3
210
Memory
13121110
23222120
Row major (C, C++, ...)
7
654
11
1098
a[0][1]a[0][2]a[0][j]
a[1][0]a[1][1]a[1][2]a[1][j]
a[2][j]
a[i][j] : 4*i + j
![Page 37: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/37.jpg)
0 1 2 3
10 11 12 13
20 21 22 23
0
1
2
0 1 2 33210
2100
209620922088
Memory
13121110
23222120
Row major (C, C++, Pascal, ...)
![Page 38: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/38.jpg)
0 1 2 3
10 11 12 13
20 21 22 23
0
1
2
0 1 2 33210
3
210
Memory
13121110
23222120
Row major (C, C++, ...)
7
654
11
1098
a[0][1]a[0][2]a[0][j]
a[1][0]a[1][1]a[1][2]a[1][j]
a[2][j]
a[i][j]
![Page 39: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/39.jpg)
0 1 ... 9
10 11 ... 19
::
::
::
80 81 ... 83
0
1
m-1
0 1 n-19
10
n-1
:10
Memory
19:
1110
89:
8180
Row major (C, C++, ...)
2n-1
:n+1
n
m*n-1
:2n+1
2n
int a[m][n];
a[i][j] : n*i + j
![Page 40: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/40.jpg)
0 1 ... 9
10 11 ... 19
::
::
::
80 81 ... 83
0
1
m-1
0 1 n-19
10
n-1
:10
Memory
19:
1110
89:
8180
Row major (C, C++, ...)
2n-1
:n+1
n
m*n-1
:2n+1
2n
int a[m][n];
a[i][j] : n*i + j
![Page 41: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/41.jpg)
0 1 ... 9
10 11 ... 19
::
::
::
80 81 ... 89
0
1
m-1
0 1 n-19
10
Memory
19:
1110
89:
8180
Row major (C, C++, ...)
int a[m][n];
a[i][j] : n*i + j
to find a[i][j] compiler needs to know:● m (no. of rows of a)● n (no. of columns of a)● both m and n
n-1
:10
2n-1
:n+1
n
m*n-1
:2n+1
2n
![Page 42: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/42.jpg)
Passing 2D arrays to functions
print2darray1.c
![Page 43: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/43.jpg)
Passing 2D arrays to functions
print2darray2.c
![Page 44: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/44.jpg)
Accessing a row of 2D array
print2darray3.c
![Page 45: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/45.jpg)
Accessing a row of 2D array
7530
3
210
Main Memory
8642
7-1114
Row major (C, C++, ...)
7
654
11
1098
![Page 46: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/46.jpg)
Passing 2D arrays to functions
print2darray2.c
![Page 47: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/47.jpg)
Passing 2D arrays to functions
print2darray4.c print2darray5.c
![Page 48: Fundamentals of Programming - KNTU homepage webFTP client · 2019. 10. 16. · 0 1 2 3 10 11 12 13 20 21 22 23 0 1 2 0 1 2 3 row by row column by column 1 20 10 0 2100 2096 2092 2088](https://reader034.vdocuments.mx/reader034/viewer/2022052012/60296bdec793a8016908bd7c/html5/thumbnails/48.jpg)
Passing 2D arrays to functions
print2darray4.c