Articles of pointers de

Invertendo uma string em C

Eu desenvolvi um programa de seqüência reversa. Eu estou querendo saber se existe uma maneira melhor de fazer isso, e se o meu código tem algum problema em potencial. Eu estou olhando para praticar alguns resources avançados de C. char* reverse_string(char *str) { char temp; size_t len = strlen(str) – 1; size_t i; size_t k […]

Como usar um iterador?

Estou tentando calcular a distância entre dois pontos. Os dois pontos que eu armazenei em um vetor em C ++: (0,0) e (1,1). Eu deveria obter resultados como 0 1.4 1.4 0 Mas o resultado real que eu tenho é 0 1 -1 0 Eu acho que há algo errado com a maneira como eu […]

Conversão de ponteiro para ponteiro entre classs derivadas e base?

Em relação ao seguinte programa C ++: class Base { }; class Child : public Base { }; int main() { // Normal: using child as base is allowed Child *c = new Child(); Base *b = c; // Double pointers: apparently can’t use Child** as Base** Child **cc = &c; Base **bb = cc; […]

Por que isso é um ponteiro e não uma referência?

Eu estava lendo as respostas para esta questão C ++ prós e contras e tenho essa dúvida ao ler os comentários. programadores freqüentemente acham confuso que “isto” é um ponteiro, mas não uma referência. Outra confusão é por que “hello” não é do tipo std :: string, mas avalia para um char const * (ponteiro) […]

A const correção dá ao compilador mais espaço para otimização?

Eu sei que isso melhora a legibilidade e torna o programa menos propenso a erros, mas quanto ele melhora o desempenho? E em uma nota lateral, qual é a principal diferença entre uma referência e um ponteiro const ? Eu diria que eles estão armazenados na memory de forma diferente, mas como assim?

Por que as referências não são recolocáveis ​​em C ++?

Referências C ++ possuem duas propriedades: Eles sempre apontam para o mesmo object. Eles não podem ser 0. Os pointers são o oposto: Eles podem apontar para objects diferentes. Eles podem ser 0. Por que não há “referência ou ponteiro não anulável e substituível” em C ++? Não consigo pensar em uma boa razão pela […]

Está passando argumento de ponteiro, passe por valor em C ++?

Está passando argumento de ponteiro, passe por valor em C ++? Desde que eu vejo que qualquer alteração no ponteiro, como tal, não é refletida fora do método. As alterações que faço ao desreferenciar o ponteiro são refletidas. Nesse caso, é aceitável / procedimento padrão para usar ponteiro para ponteiro como argumento para uma function […]

O que faz mais sentido – char * string ou char * string?

Duplicar Possível: Em C, por que o asterisco é antes do nome da variável, e não depois do tipo? Estou aprendendo C ++ no momento e estou encontrando muitas cadeias terminadas em null. Isso me fez pensar, o que faz mais sentido ao declarar pointers: char* string ou char *string ? Para mim, o formato […]

Por que o endereço zero é usado para o ponteiro nulo?

Em C (ou C ++), os pointers são especiais se tiverem o valor zero: Preciso definir pointers para zero depois de liberar sua memory, porque isso significa que liberar o ponteiro novamente não é perigoso; quando eu chamo malloc, ele retorna um ponteiro com o valor zero se não puder me pegar na memory; Eu […]

Arrays são pointers?

Duplicar Possível: O nome da matriz é um ponteiro em C? Arrays e pointers são implementados de maneira diferente em C e C ++? Eu me deparei com essa questão porque, em ambos os casos, acessamos elementos do endereço inicial de um elemento. Então, deve haver uma relação estreita entre eles. Por favor, explique a […]