Declaration of outer block and inner block
#include <stdio.h>
int main(void)
{
int count1 = 1;
do
{
int count2 = 0;
++count2;
printf("\ncount1 = %d count2 = %d", count1,count2);
}while( ++count1 <= 8 );
/* count2 no longer exists */
printf("\ncount1 = %d\n", count1);
return 0;
}
count1 = 1 count2 = 1
count1 = 2 count2 = 1
count1 = 3 count2 = 1
count1 = 4 count2 = 1
count1 = 5 count2 = 1
count1 = 6 count2 = 1
count1 = 7 count2 = 1
count1 = 8 count2 = 1
count1 = 9
Get the values in a two-dimensional array through array pointer
#include <stdio.h>
int main(void)
{
char board[3][3] = {
{"1","2","3"},
{"4","5","6"},
{"7","8","9"}
};
int i;
for(i = 0; i < 9; i++)
printf(" board: %c\n", *(*board + i));
return 0;
}
board: 1
board: 2
board: 3
board: 4
board: 5
board: 6
board: 7
board: 8
board: 9
Get values from multidimensional arrays with pointers
#include <stdio.h>
int main(void)
{
char board[3][3] = {
{"1","2","3"},
{"4","5","6"},
{"7","8","9"}
};
char *pboard = *board; /* A pointer to char */
int i;
for(i = 0; i < 9; i++)
printf(" board: %c\n", *(pboard + i));
return 0;
}
board: 1
board: 2
board: 3
board: 4
board: 5
board: 6
board: 7
board: 8
board: 9
Two-Dimensional arrays and pointers
#include <stdio.h>
int main(void)
{
char board[3][3] = {
{"1","2","3"},
{"4","5","6"},
{"7","8","9"}
};
printf("address of board : %p\n", board);
printf("address of board[0][0] : %p\n", &board[0][0]);
printf("but what is in board[0] : %p\n", board[0]);
return 0;
}
address of board : 9a377
address of board[0][0] : 9a377
but what is in board[0] : 9a377
Two-Dimensional arrays: pointer of pointer for its element
#include <stdio.h>
int main(void)
{
char board[3][3] = {
{"1","2","3"},
{"4","5","6"},
{"7","8","9"}
};
printf("value of board[0][0] : %c\n", board[0][0]);
printf("value of *board[0] : %c\n", *board[0]);
printf("value of **board : %c\n", **board);
return 0;
}
value of board[0][0] : 1
value of *board[0] : 1
value of **board : 1