Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

256
Views
Salida de +****p++

¿Alguien puede explicarme la salida?

 #include<stdio.h> int main() { int a[]={10,20,30}; int *p=a; ++*p++; printf("%d %d %d %d",*p,a[0],a[1],a[2]); }

la salida es 20 11 20 30

El incremento de sufijo tiene una precedencia más alta, por lo que el valor del segundo índice debería haberse incrementado. ¿Por qué se incrementa el valor del primer índice?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Debido a la precedencia del operador ,

++*p++ es lo mismo que ++(*(p++)) .

Eso es equivalente a:

 int* p1 = p++; // p1 points to a[0], p points to a[1] ++(*p1); // Increments a[0]. It is now 11.

Eso explica la salida.

over 4 years ago · Santiago Trujillo Report

0

Esto se debe a que el operador sufijo devuelve el valor antes del incremento. Entonces, el puntero está bien incrementado, pero el operador de prefijo aún se aplica al valor del puntero original.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!