Getting values in a two-dimensional array with pointer and for loop
#include <stdio.h> int main(void) { char matrix[3][3] = { { '1','2','3' }, { '4','5','6' }, { '7','8','9' } };// w w w . j a v a 2s . c om // List all elements of the array for (int i = 0; i < 9; ++i) printf(" matrix: %c\n", *(*matrix + i)); return 0; }
We dereference matrix in the loop:
printf(" matrix: %c\n", *(*matrix + i));
You use the expression *(*matrix + i) to get the value of an array element.
*matrix + i produces the address of the element in the matrix array that is at offset i.
Using matrix (array name) is the same as using an address value of type char**.
Dereferencing matrix produces the same address value, but of type char*.