Qual é a diferença entre typedef e referência em c ++, pois ambos são usados ​​para fornecer um nome duplicado para uma variável já definida?

Typedef é usado para dar outro nome a um tipo de dados, não a uma variável. Por exemplo:

  1. typedef int Dinheiro;

Essa linha de código fará do Money outro nome para int. Você pode usá-lo para definir variáveis ​​inteiras.

  1. Conta de dinheiro1 = 20000;

As referências fornecem outro identificador para uma variável. Se você alterar o valor de uma referência, a variável que ela referencia também muda e vice-versa.

  1. char a = 'c'; char & b = a; // b = 'c'a =' r '; // a = 'r', b = 'r'b =' d '; // a = 'd', b = 'd'

Aqui

b

é uma referência a

uma.

Quando

uma

é atribuído o valor 'r',

b

O valor de também muda. Da mesma forma, quando

b

é atribuído o valor 'd',

uma

O valor de também muda para 'd'.

o

palavra-chave typedef

permite criar novos nomes para tipos como int, struct, classe, tipos de modelo e usados ​​para fornecer mais clareza ao seu código e facilitar as alterações nos tipos de dados subjacentes que você usa.

O mais comum é usar o nome alternativo para estruturas ou classes.

  1. funcionário typedef struct {char * name; int salário;} emp; int principal () {emp e1; e1.salary = 100, e1.name = "Madhusudan"; cout << e1.name << "" << e1.salary; retornar 0;}

Agora você pode criar as variáveis ​​do tipo

struct employee

usando apenas o nome

emp

, criando assim um nome alternativo.

Enquanto estiver usando

referência

você está criando um

referência a um local de memória

, referenciado por mais de uma variável, por exemplo

  1. int a = 100; int & b = a; // a = b = 100b = 200; // a = b = 200cout << a << "" << b << endl; b = 300; // a = b = 300cout << a << "" << b << endl; a = 400; // a = b = 400cout << a << "" << b << endl;

Aqui, ambos

uma

e

b

agora estão fazendo referência ao mesmo

LOCALIZAÇÃO DA MEMÓRIA

, portanto, qualquer alteração em um deles resulta em alteração no local da memória, refletindo nas duas variáveis.

Nota

: não fique confuso entre

referência

e

ponteiro

, ambos são diferentes.