Учитывая эту проблему, и я полностью осведомлен о фактах:
1) Имя массива является фиксированным указателем на его первый элемент.
2) имя двумерной матрицы - это адрес ее первого одномерного массива.
3) и разница между x [i] и & x [i] в арифметических c операциях (где i неотрицательный целое число).
Компилятор MinGW. Как компилятор в C может получить разницу между адресом первого элемента массива и адресом всего массива, хотя они содержат одну и ту же цифру c ценность ?
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int main(void)
{
int x[3][3] = {1,2,3,4,5,6,7,8,9} ;
int *p ;
for(p = &x[0] ; p < &x[0] + 1 ; p++) //Warning: comparison of distinct pointer types in this line of code
printf("%d\n",*p) ;
return 0 ;
}