"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué la impresión del nombre de una función en C++ da como resultado \"1\"?

¿Por qué la impresión del nombre de una función en C++ da como resultado \"1\"?

Publicado el 2024-11-08
Navegar:746

Why Does Printing a Function Name in C   Result in \

buscando una función sin llamar: desentrañando el misterio

Imagínate esto: estás codificando y en lugar de invocar una función entre paréntesis, simplemente imprime su nombre. Sorprendentemente, el resultado siempre es 1. Este enfoque poco convencional te deja perplejo, tanto por los 1 como por la ausencia del puntero de función esperado.

Profundicemos en las complejidades de tu código:

#include 
using namespace std;

void pr()
{
    cout 

Contrariamente a su intención, en realidad no está llamando a la función pr en las declaraciones cout

Para mejorar su comprensión, considere usar cout

Si bien C 11 ofrece una solución elegante:

template 
std::ostream & operator

Esta sobrecarga le permite imprimir punteros de función de aridad arbitraria, mostrando información como la dirección del puntero de función y el número de sus argumentos.

Así que ahí lo tiene: los enigmáticos 1 son no es una mera coincidencia sino el resultado de una conversión de tipo implícita. Comprender este comportamiento es crucial para evitar resultados inesperados y crear un código más sólido.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3