Como verificar a localização de uma variável em c programação

Video: Curso Programação em C/C++ - Aula 5 - Condicionais, Variáveis char e conceitos

Na programação C, tipo e tamanho de uma variável são descobertos pela primeira vez ao declarar essa variável como um tipo específico, mas também usando a palavra-chave sizeof. A segunda descrição de uma variável, o seu conteúdo, pode ser adquirida através da leitura o valor da variável usando a função da linguagem C apropriado.

A terceira descrição de uma variável é a sua localização na memória. Você reunir essas informações usando a & operador e o espaço reservado% p, como mostrado na ó variável, Portanto Estás?

O VARIÁVEL, Wherefore Art Thou?

#include int main () {char c =-`c` int i = 123-f = 98,6 flutuador duplo-d = 6.022E23-printf ("Endereço de `c` % pn",&c) -printf ("Endereço do `i` % pn",&i) -printf ("Endereço do `f` % pn",&f) -printf ("Endereço do `d` % pn",&d) -Retornar (0) -}

Quando o & operador de prefixos uma variável, ele retorna um valor que representa a variável de endereço, ou a sua localização na memória. Esse valor é expresso em hexadecimal. Para exibir este valor, o caractere de conversão p% é usado, como se mostra na ó variável, Portanto Estás?

Video: Programação em C (básico) - Aula 02 - Variável, entrada e saída

Exercício 1: Digite o código-fonte de O Variable, Wherefore Art Thou? em seu editor. Construir e executar.

Os resultados produzidos pelo programa gerado a partir do Exercício 1 são únicos, não só para cada computador, mas também, potencialmente, para cada vez que o programa é executado.

Endereço de `c` 0x7fff5fbff8ffAddress de `i` 0x7fff5fbff8f8Address de `f` 0x7fff5fbff8f4Address de `d` 0x7fff5fbff8e8

Variável c é armazenado na memória no local 0x7fff5fbff8ff - que é local decimal 140.734.799.804.671. Ambos os valores são triviais, de course- o computador mantém o controle dos locais de memória, que é muito bem por mim.



Esta ilustração mostra como esses endereços mapear na memória.

elementos da matriz individuais têm posições de memória, bem como, como mostrado na locais de memória em um array na linha 10. O & operador de prefixos a variável elemento específico, tosse com um endereço. O caractere de conversão% p na função printf () exibe o endereço.

Locais de memória em um array

#include int main () {char Olá [] = "Olá!"-int i = 0-tempo (Olá [i]) {printf ("% C% em pn", Olá [i],&Olá [i]) - i ++ -} return (0) -}

exercício 2: Criar um novo projeto usando o código-fonte mostrado nas localizações de memória em uma matriz. Construir e executar.

Mais uma vez, a produção local de memória é único em cada computador.

H em 0x7fff5fbff8f0e em 0x7fff5fbff8f1l em 0x7fff5fbff8f2l em 0x7fff5fbff8f3o em 0x7fff5fbff8f4! em 0x7fff5fbff8f5

Ao contrário do exemplo de exercício 1, os endereços gerados pelo exercício 2 são contíguas na memória, um byte após o outro.

exercício 3: Codificar um programa para exibir cinco valores em uma matriz int juntamente com o endereço de memória de cada elemento. Você pode usar locais de memória em uma matriz para inspirá-lo, embora um loop pode ser mais fácil de código.

  • By the way, o & memória operador local deve ser familiar para você. Ele é usado pela função scanf (), que requer o endereço de uma variável, não a própria variável. Isso porque scanf () coloca um valor em um local de memória diretamente. Como? Usando ponteiros, é claro!

  • o & operador também é o bit a bit E operadora no entanto, o compilador é inteligente o suficiente para saber quando & prefixos uma variável e quando & faz parte de uma equação matemática binária.


Publicações relacionadas