questo codice mi da errore nella riga di assegnamento del vettore

#include <stdio.h>

int main(){
struct persona {
char nome[20];
};
struct persona giovanni;

giovanni.nome[20]= "marco";

printf ("nome %s", giovanni.nome[20]);
}

ecco cosa mi dice il debugger:

warning C4047: '=' : 'char ' differs in levels of indirection from 'char [6]'

provavettori.obj - 0 error(s), 1 warning(s)

non riesco a capire, con un vettore non in una sturttura posso fare semplicemente:

char vettore[20]= "marco";

perchè qui non funziona?

Grazie