<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>http://wiki.cabal.mx/index.php?action=history&amp;feed=atom&amp;title=Curso_de_Programaci%C3%B3n_en_C%2FProg72</id>
	<title>Curso de Programación en C/Prog72 - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.cabal.mx/index.php?action=history&amp;feed=atom&amp;title=Curso_de_Programaci%C3%B3n_en_C%2FProg72"/>
	<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog72&amp;action=history"/>
	<updated>2026-04-22T14:18:09Z</updated>
	<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
	<generator>MediaWiki 1.32.1</generator>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog72&amp;diff=3656&amp;oldid=prev</id>
		<title>Rrc en 14:35 21 abr 2012</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_C/Prog72&amp;diff=3656&amp;oldid=prev"/>
		<updated>2012-04-21T14:35:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__NOTOC__&lt;br /&gt;
* [[:#Prog72 | operaciónes con pointers]]&lt;br /&gt;
** [[:#Resultado | Resultado]]&lt;br /&gt;
** [[:#Explicación | Explicación]]&lt;br /&gt;
&lt;br /&gt;
== Prog72 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;GESHI_FANCY_LINE_NUMBERS&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
  int urn[5] = {100,200,300,400,500};&lt;br /&gt;
  int * ptr1,&lt;br /&gt;
      * ptr2, &lt;br /&gt;
      * ptr3;&lt;br /&gt;
&lt;br /&gt;
  ptr1 = urn;&lt;br /&gt;
  ptr2 = &amp;amp;urn[2];&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;Valor de pointer, Pointer dereferenciado, Dirección de pointer\n&amp;quot;);&lt;br /&gt;
  printf( &amp;quot;ptr1 = %p,          *ptr1 =%d,             &amp;amp;ptr1 = %p\n&amp;quot;,&lt;br /&gt;
           ptr1,               *ptr1,                 &amp;amp;ptr1 );&lt;br /&gt;
&lt;br /&gt;
  // Adición con pointers&lt;br /&gt;
  ptr3 = ptr1 + 4;&lt;br /&gt;
  printf( &amp;quot;\nAdición de int a un pointer:\n&amp;quot; );&lt;br /&gt;
  printf( &amp;quot;ptr1 + 4 = %p, *(ptr1 + 3) = %d\n&amp;quot;,&lt;br /&gt;
           ptr1 + 4,      *(ptr1 + 3) );&lt;br /&gt;
&lt;br /&gt;
  ptr1++;            // incrementar un pointer&lt;br /&gt;
  printf( &amp;quot;\nValores después de ptr1++:\n&amp;quot; );&lt;br /&gt;
  printf( &amp;quot;ptr1 = %p, *ptr1 =%d, &amp;amp;ptr1 = %p\n&amp;quot;,&lt;br /&gt;
           ptr1,      *ptr1,     &amp;amp;ptr1);&lt;br /&gt;
&lt;br /&gt;
  ptr2--;            // decrementar un pointer&lt;br /&gt;
  printf( &amp;quot;\nValores después de --ptr2:\n&amp;quot; );&lt;br /&gt;
  printf( &amp;quot;ptr2 = %p, *ptr2 = %d, &amp;amp;ptr2 = %p\n&amp;quot;,&lt;br /&gt;
           ptr2,      *ptr2,      &amp;amp;ptr2);&lt;br /&gt;
&lt;br /&gt;
  --ptr1;            // restorar valor original&lt;br /&gt;
  ++ptr2;            // restorar valor original&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;\nPointers regresados a sus valores originales:\n&amp;quot; );&lt;br /&gt;
  printf( &amp;quot;ptr1 = %p, ptr2 = %p\n&amp;quot;, ptr1, ptr2 );&lt;br /&gt;
&lt;br /&gt;
                      // un pointer menos otra pointer&lt;br /&gt;
  printf( &amp;quot;\nUn pointer menos otro pointer:\n&amp;quot; );&lt;br /&gt;
  printf( &amp;quot;ptr2 = %p, ptr1 = %p, ptr2 - ptr1 = %d\n&amp;quot;,&lt;br /&gt;
           ptr2,      ptr1,      ptr2 - ptr1);&lt;br /&gt;
&lt;br /&gt;
                      // un pointer menos un intero&lt;br /&gt;
  printf( &amp;quot;\nUn pointer menos un intero:\n&amp;quot;);&lt;br /&gt;
  printf( &amp;quot;ptr3 = %p, ptr3 - 2 = %p\n&amp;quot;,&lt;br /&gt;
           ptr3,  ptr3 - 2);&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resultado ===&lt;br /&gt;
 &lt;br /&gt;
 [rrc@Pridd CClase]$ gcc -Wall -O2 -o Prog72 Prog72.c&lt;br /&gt;
 [rrc@Pridd CClase]$ ./Prog72&lt;br /&gt;
 Valor de pointer,   Pointer dereferenciado, Dirección de pointer&lt;br /&gt;
 ptr1 = 0xbfb2da84,     *ptr1 =100,             &amp;amp;ptr1 = 0xbfb2da9c&lt;br /&gt;
 &lt;br /&gt;
 Adición de int a un pointer:&lt;br /&gt;
 ptr1 + 4 = 0xbfb2da94, *(ptr1 + 3) = 400&lt;br /&gt;
 &lt;br /&gt;
 Valores después de ptr1++:&lt;br /&gt;
 ptr1 = 0xbfb2da88, *ptr1 =200, &amp;amp;ptr1 = 0xbfb2da9c&lt;br /&gt;
 &lt;br /&gt;
 Valores después de --ptr2:&lt;br /&gt;
 ptr2 = 0xbfb2da88, *ptr2 = 200, &amp;amp;ptr2 = 0xbfb2da98&lt;br /&gt;
 &lt;br /&gt;
 Pointers regresados a sus valores originales:&lt;br /&gt;
 ptr1 = 0xbfb2da84, ptr2 = 0xbfb2da8c&lt;br /&gt;
 &lt;br /&gt;
 Un pointer menos otro pointer:&lt;br /&gt;
 ptr2 = 0xbfb2da8c, ptr1 = 0xbfb2da84, ptr2 - ptr1 = 2&lt;br /&gt;
 &lt;br /&gt;
 Un pointer menos un intero:&lt;br /&gt;
 ptr3 = 0xbfb2da94, ptr3 - 2 = 0xbfb2da8c&lt;br /&gt;
 [rrc@Pridd CClase]$ &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
=== Explicación ===&lt;br /&gt;
&lt;br /&gt;
[[Category:Programación en C]]&lt;br /&gt;
[[Category:CCabal]]&lt;br /&gt;
[[Category:CursoC]]&lt;/div&gt;</summary>
		<author><name>Rrc</name></author>
		
	</entry>
</feed>