¿Cuál es el orden de evaluación de las declaraciones en un paréntesis if (...)? [duplicar

Esta pregunta ya tiene una respuesta aquí:

¿Son obligatorios los operadores lógicos de cortocircuito? ¿Y orden de evaluación? 7 respuestasPreguntas de seguridad sobre la evaluación de cortocircuito [duplicado] 4 respuestas

Tengo un puntero char inicializado a NULL al comienzo del programa, más adelante en el programa, el char * se usa en una llamada de función donde puede apuntar a una cadena de caracteres y puede apuntar a un carácter nulo, y podría permanecer intacto. Entonces, la siguiente afirmación es correcta, debería ser si las expresiones se evalúan de izquierda a derecha. Si no entoncesstrlen (charpointer) es un comportamiento indefinido, sicharpointer == NULL

if (  charpointer == NULL || strlen ( charpointer ) == 0  )

Entonces, ¿son evaluados de izquierda a derecha? ¿Es esta la forma correcta de verificar de esta manera?

Respuestas a la pregunta(5)

Su respuesta a la pregunta