Qual é a diferença entre int * p e int p * e int * p?


Melhor resposta

Bem, não há nada como:

int p*;

É uma declaração inválida. Você obterá um erro de compilação com este código.

Por outro lado, int * p e int * p são basicamente os mesmos. É apenas uma questão de estilo. No que diz respeito ao compilador C / C ++, não importa se você escreve int * p ou int * p. Portanto, se você preferir associar o * ao tipo em vez da variável, sinta-se à vontade para fazê-lo.

Mas um ponto importante a ser observado:

A seguinte declaração cria um não dois ponteiros inteiros:

int* a,b;

Aqui b é declarado como inteiro, onde como a é um ponteiro inteiro. Esta declaração:

int *a,*b;

declara aeb como ponteiros inteiros.

Resposta

Int p *: ainda não vi Int * p: como aqui o * está anexado a p, então apenas p será um Ponteiro para inteiro. se você declarar outra variável após p separada por ponto-e-vírgula, ela não será um ponteiro. Ou seja int * p, q. Aqui, p será um ponteiro para inteiro, mas q será uma variável normal int e não um ponteiro.

O caso Int * p, q funciona de maneira semelhante a Int * p, q. Ambas as declarações declaram p como um ponteiro de inteiro e q como um inteiro normal. Int * p, q é um tipo de declaração que acaba confundindo os programadores.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *