./281 > alors le static, ça dépend, ce que dit squalyl c'est vrai pour une déclaration globale (variable ou fonction), mais ici c'est pas le cas (bienvenue dans le C, le langage où les mots-clefs ont des significations différentes suivant le contexte

).
Pour une variable locale, dans une fonction, "static" indique que la variable n'est pas créée à chaque appel de la fonction mais une fois pour toute, et conserve sa valeur entre deux appels de la fonction.
Concrètement¹, si tu déclares ta variable normalement (sans static), elle va être recopiée sur la pile² au début de la fonction, et &a sera un pointeur sur la pile. Avec static, il n'y a pas de recopie, et &a pointe directement sur l'endroit de ton programme où sont les données ; je pense que c'est ce que tu voulais faire en prenant l'adresse d'une valeur littérale.
edit : il vaut mieux ajouter const après static si ton initialiseur ne doit pas être modifié ^^ (ça n'a aucun effet concret à part générer une erreur si tu essayes de le modifier, mais ça peut aider à trouver des bugs éventuels

)
¹au moins sur 68k, ça a peut-être un effet différent sur des architectures tordues
²ou éventuellement dans un registre si c'est possible, mais bien sûr si tu veux récupérer son adresse par &a ça l'est pas ^^