Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: xoker en 26 Diciembre 2013, 10:43 am



Título: Diferencia entre usar aritmetica de punteros y corchetes en vectores en C
Publicado por: xoker en 26 Diciembre 2013, 10:43 am
Buenas, pues simplemente esa es mi pregunta, siempre pense que lo tenia claro, que era indistinto usar una u otra opcion, pero para memorias dinamicas era forzoso usar aritmetica de punteros (eso me contaron en la universidad...  :huh:), pero tras acceder a un vector dinamico con corchetes sin ningun problema pues de repente me he dado cuenta de que no es necesario usar aritmetica de punteros forzosamente en ningun caso... es esto asi?

Para que no quede duda, con aritmetica de punteros me refiero a acceder a una posicion de un vector tal que asi: *(vector + i), y por la forma de los corchetes (no recuerdo su nombre  :silbar:) me refiero a: vector.

Un saludo y a ver si podeis sacarme del lio!


Título: Re: Diferencia entre usar aritmetica de punteros y corchetes en vectores en C
Publicado por: amchacon en 26 Diciembre 2013, 12:57 pm
No es necesario en ningún caso, la diferencia es inapreciable actualmente y en muchas ocasiones el compilador hace ese trabajo por ti.

Por cierto la aritmetica de punteros parte de ir incrementando el puntero (sobreescribiendolo), si haces una cuenta fija (p+i) estas haciendo lo mismo que los corchetes.


Título: Re: Diferencia entre usar aritmetica de punteros y corchetes en vectores en C
Publicado por: xoker en 26 Diciembre 2013, 13:08 pm
No es necesario en ningún caso, la diferencia es inapreciable actualmente y en muchas ocasiones el compilador hace ese trabajo por ti.

Por cierto la aritmetica de punteros parte de ir incrementando el puntero (sobreescribiendolo), si haces una cuenta fija (p+i) estas haciendo lo mismo que los corchetes.

Pues listo, perfecto entonces con la duda, muchas gracias por responder.

A partir de ahora, siempre usare los corchetes! No entiendo porque en la facultad nos cuentan tantas mentiras...  >:(


Título: Re: Diferencia entre usar aritmetica de punteros y corchetes en vectores en C
Publicado por: amchacon en 26 Diciembre 2013, 13:15 pm
Pues porque hace 20 años se miraba muchísimo la eficiencia (a veces se rescribían métodos en ensamblador para mejorarla aún más).

Hoy en día los compiladores son muchísimos mejores que antes. Esas optimizaciones ya las suelen hacer ellos solitos (y si no, tampoco vas a notar ninguna diferencia).

El porque siguen contando esto es porque hay muchos profesores prehístoricos que no se reciclan ni a tiros  :silbar:


Título: Re:
Publicado por: ivancea96 en 26 Diciembre 2013, 13:27 pm
Recordemos, que la aritmética de punteros es ir un paso más hacia la comprensión de cómo funcionan los punteros.
Me parece realmente útil saberla, aunque menos útil utilizarla en proyectos.

Enviado desde mi ST21i mediante Tapatalk