Nesta diretriz, veremos a diferença entre o * e & operadores em programação C.
* Operador em C
O * O operador é um dos operadores amplamente utilizados na linguagem de programação C que é usada para recuperar os valores de um ponteiro. Também nomeamos o operador * como um operador de dereferência. Ao usar este operador, você pode acessar facilmente os dados armazenados na memória usando a ajuda dos ponteiros de endereço. Se você o usar no programa, você deve inicializar um ponteiro que está apontando para o endereço para que esse seja facilmente recuperado o valor armazenado no ponteiro de endereço.
& Operador em C
& O operador, por outro lado, é usado para retornar o endereço do operando no local da memória. Devido ao Operador, você pode facilmente obter o endereço da variável que é referida no local da memória. Para ver o endereço da variável de qualquer tipo de tipo de dados, você terá que dar o nome da variável com o sinal de & -Operator.
Exemplos
Abaixo estão alguns exemplos de programas C que usam * operador, & operador e uma combinação de ambos.
Exemplo 1: Operador do programa (*) Operador
#incluir
int main ()
int a = 5;
int *p = & a;
printf ("o valor de a é %d \ n", *p);
retornar 0;
O código inicializa a variável A Com o valor 5, então declara uma variável do tipo ponteiro para ter algum endereço da memória e na função Printf, mostra o valor do endereço A que é 5.
Saída
Exemplo 2: Operador do programa (&) Operador
#incluir
int main ()
int var1 = 1000;
int var2;
var2 = &var1;
printf ("O endereço de localização de memória do var2 é %i", var2);
retornar 0;
No código acima, primeiro, há uma variável inteira VAR1 que tem o valor de 1000. Há outra variável VAR2 que leva o endereço da variável VAR1. O endereço é então impresso usando o %eu Especificadores de formato.
Saída
Exemplo 3: o programa usa os operadores e * e *
#incluir
int main ()
int aa = 5, bb;
int *pp;
pp = &aa;
bb = *pp;
printf ("----- O endereço de AA é 0x%x \ n -----", & aa);
printf ("----- ADDRES de BB é 0x%x \ n -----", & bb);
printf ("----- O valor do PP é 0x%x \ n -----", pp);
printf ("--------- agora o valor de AA é %d \ n -----", aa);
printf ("------- Valore de *pp ISS %d \ n -----", *pp);
printf ("----- O valor de BB é: %d ----", bb);
retornar 0;
No código C acima, duas variáveis inteiras simples são inicializadas e uma variável do tipo ponteiro *pp. Em seguida, atribuímos o endereço AA ao PP e novamente desreferimos seu valor pela variável bb. No final, imprimimos todos os valores usando a função printf.
Saída
Conclusão
Os operadores têm um papel muito significativo na linguagem de programação. Neste artigo, discutimos dois operadores que trabalham apenas com operandos únicos e usam para aumentar o desempenho do código na linguagem de programação C C. Ambos * e & Os operadores inferem em seu significado e funcionalidades como * é usado para "retorna o valor variável" enquanto & é para “manipulação de valores no tempo de execução, tomando endereços de memória”.