CИ. Литерные указатели.. Подскажите пожалуйста
Всем привет.
вот часть кода.
#define N 3
int main()
{
char *m [ N ] = {"First","Second","The last"};
char *tmp;
int k;
k = N;
tmp = m [ 0 ] ;
m [ 0 ] = m [ 2 ] ;
m [ 2 ] = tmp;
while(k-- > 0)
{
printf(" %s",*m++);
}
....
}
Вопрос 1)
Почему вместо конструкции tmp = m [ 0 ] ; нельзя написать вот так tmp = m; ведь m имя массива это указатель на его первый элемент?
почему всю конструкцию нельзя записать так.
tmp = m;
m = m+2;
m+2 = tmp;
Вопрос 2)
в строке printf(" %s",*m++); мне подчёркивает *m++ и пишет что ошибка.. .
но по конструкции это же правильно? ! *m++ //След. элемент. m++ //Адрес след элемента.