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

248
Views
Qué ! (char*) significa en C

Estaba mirando un ejemplo y vi esto:

 char *str; /* ... */ if (!str || !*str) { return str; }

¿Significa que está vacío o algo así?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

str es un puntero char. ! lo niega. Básicamente, !str se evaluará como verdadero (1) cuando str == NULL .

La segunda parte dice, (si str apunta a algo) evalúa como verdadero (1) si el primer carácter es un carácter nulo ( '\0' ), lo que significa que es una cadena vacía.

Nota:
*str elimina la referencia del puntero y recupera el primer carácter. Esto es lo mismo que hacer str[0] .

over 4 years ago · Santiago Trujillo Report

0

!str significa que no hay memoria asignada a str . !*str significa que str apunta a una cadena vacía.

over 4 years ago · Santiago Trujillo Report

0

Antes de preguntar puedes hacer pequeñas pruebas.

 #include <stdio.h> int main() { char *str = "test"; printf("%d\n",*str); printf("%c\n",*str); // str[0] printf("%d\n",str); if (!str || !*str) { printf("%s",str); } return 0; }

significado de ! es negación. Excepto 0 , todos los valores son verdaderos para la condición if . Aquí, str y *str devuelven valores que no son 0 . Entonces, puedes hacer una inferencia.

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!