Declarando um ponteiro em C ++

UMA carbonizar variável em C ++ é projetado para manter um caractere ASCII, um int um número inteiro, e um duplo um número de ponto flutuante. Da mesma forma, uma variável de ponteiro é projetado para armazenar um endereço de memória. Declara uma variável ponteiro através da adição de um asterisco (*) para o fim de o tipo de objecto que os pontos ponteiro no, como no exemplo a seguir:

char * PChar - // ponteiro para uma characterint * pInt- ponteiro // para um int

Uma variável ponteiro que de outra forma não foi inicializada contém um valor desconhecido. Usando o comercial () Operador, você pode inicializar uma variável de ponteiro com o endereço de uma variável do mesmo tipo:

Char cSomeChar = 'A'-char * PChar-PChar = cSomeChar-

Neste trecho, a variável cSomeChar tem algum endereço. Por causa do argumento, dizem que C ++ atribuiu a 0x1000 endereço. (C ++ também inicializado nesse local com o personagem 'uma'.) A variável PChar também tem um local da sua própria, talvez 0x1004. O valor da expressão cSomeChar é 0x1000, e seu tipo é char * (ler # 147-ponteiro para carbonizar# 148-).

Assim, a atribuição na terceira linha do exemplo de trecho armazena a 0x1000 valor na variável PChar.

image0.jpg

Tome um minuto para realmente compreender a relação entre a figura e as três linhas de código C ++ no trecho. A primeira declaração diz: # 147 sair e encontrar uma localização de 1 byte na memória, atribua a ele o nome cSomeChar, e inicializar-lo para 'uma'.# 148- Neste exemplo, C ++ escolheu a 0x1000 localização.

A próxima linha diz: # 147 sair e encontrar um local suficientemente grande para conter o endereço de um carbonizar variável e atribuir-lhe o nome PChar.# 148- Neste exemplo, C ++ atribuído PChar para a localização 0x1004.

A terceira linha diz: # 147 atribuir o endereço de cSomeChar (0x1000) para a variável PChar.# 148- A figura representa o estado do programa após estas três afirmações.

Nº 147-E daí? # 148- você diz. Aqui vem a parte realmente legal, como demonstrado na seguinte expressão:

* PChar = 'b'-

Esta linha diz: # 147 da loja uma 'B' no carbonizar localização apontada para por PChar.# 148- Isso é demonstrado na figura a seguir. Para executar esta expressão, C ++ primeiro recupera o valor armazenado em PChar (Que seria 0x1000). É, em seguida, armazena o carácter 'B' nesse local.

image1.jpg

o * Quando usado como um meio operador binário # 147-multiplicar # 148--, quando utilizado como um operador unitário, * significa # 147-encontrar a coisa apontada por. # 148- Da mesma forma tem um significado tal como um operador binário, mas como um operador unitário, significa # 147 obter o endereço de nº 148.;

Assim que é tão emocionante sobre isso? Afinal, você pode conseguir o mesmo efeito, basta atribuir um 'B' para cSomeChar diretamente:

cSomeChar = 'b'-

Por que passar pela etapa intermediária de recuperar seu endereço na memória? Porque existem vários problemas que podem ser resolvidos apenas com ponteiros.

menu