Есть три структуры; массивы a
и b
и указатель c
:
c --------------------------.
|
V
___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
a --> | a | \0| \0| \0| \0| b | i | g | \0| \0| r | i | d | e | \0|
´´´ ´´´ ´´´ ´´´ ´´´ ´´´ ´´´ ´´´ ´´´ ´´´ ´´´ ´´´ ´´´ ´´´ ´´´
___ ___ ___ ___ ___ ___ ___
b --> | F | l | y | i | n | g | \0|
´´´ ´´´ ´´´ ´´´ ´´´ ´´´ ´´´
Это код:
int main(){
char a[3][5]={"a", "big", "ride"};
char b[]="Flying";
char *c=*(a+1);
puts(b+(c-*a)-2);
return 0;
}
Теперь я не могу понять выражение b+(c-*a)-2
. Кто-то может быть добрым и сломать это?