Quina diferència hi ha entre la constant i la constant estàtica en C?


Resposta 1:

Google és el teu amic.

Quina diferència hi ha entre la const estàtica i la const?

  • Const significa que no podeu canviar el valor (impedeix les botigues) Estàtic (dins d’una funció) significa que el valor sobreviu a futures execucions de la funció. Els valors de const també fan això! Estàtic (fora d'una funció) significa que l'abast de la declaració és només el fitxer font actual, no tot el programa.

De manera que una const estàtica int x = 3; declarat dins d'una funció és el mateix que una const int x = 3;

Fora d’una funció, una const int x = 3; seria visible a tot el programa mentre una const estàtica int x = 3; només seria visible al fitxer font actual.


Resposta 2:

Quan utilitzeu el modificador constant, bàsicament esteu dient al compilador que el valor de la variable no canviarà i que qualsevol intent de canviar-lo no és vàlid. Quan utilitzeu el modificador estàtic, esteu assignant memòria al munt, no a la pila, de manera que bàsicament esteu fent que l’àmbit de la variable passés el retorn de la funció. No veig el propòsit de fer una estàtica variable constant, ja que no podreu canviar el seu valor. Les variables estàtiques s'utilitzen per mantenir un valor en una variable fora del bloc de codi i fer referència de nou quan s'executa aquest bloc, com per exemple, un recompte.