Precedencia de postfix ++ y prefix ++ en C/C++

En C/C++, la precedencia de Prefix ++ (o Prefix –) tiene la misma prioridad que el operador de desreferencia (*), y la precedencia de Postfix ++ (o Postfix –) es mayor que Prefix ++ y *. 
Si p es un puntero, entonces *p++ es equivalente a *(p++) y ++*p es equivalente a ++(*p) (tanto el Prefijo ++ como * son asociativos por la derecha).
Por ejemplo, el programa 1 imprime ‘h’ y el programa 2 imprime ‘e’ .
 

C++

// Program 1
// C++ program to explain the precedence of 'Prefix ++'
 
#include <iostream>
using namespace std;
 
int main()
{
  char arr[] = "geeksforgeeks";
  char *p = arr;
  ++*p;
  cout << *p;
  return 0;
}
 
// This code is contributed by sarajadhav12052009

C

// Program 1
#include<stdio.h>
int main()
{
  char arr[] = "geeksforgeeks";
  char *p = arr;
  ++*p;
  printf(" %c", *p);
  getchar();
  return 0;
}
Producción

h

C++

// Program 2
// C++ Program to explain the precedence of 'Postfix ++'
 
#include <iostream>
using namespace std;
 
int main()
{
  char arr[] = "geeksforgeeks";
  char *p = arr;
  *p++;
  cout << *p;
 
  return 0;
}
 
// This code is contributed by sarajadhav12052009

C

// Program 2
#include<stdio.h>
int main()
{
  char arr[] = "geeksforgeeks";
  char *p = arr;
  *p++;
  printf(" %c", *p);
  getchar();
  return 0;
}
Producción

e

Programa para saber el apellido de una persona

C++

// C++ program that tells a person's last name
 
#include <iostream>
using namespace std;
 
int main()
{
  string fullName[] = {"Joe", "Donaldson"};
  string *ptr = fullName;
   
  cout << *ptr << "'s Last Name is ";
  *ptr++;
  cout << *ptr << endl;
}
 
// This code is contributed by sarajadhav12052009
Producción

Joe's Last Name is Donaldson

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *