首页 > 解决方案 > 如何在 C++ 中打印函数指针的值?

问题描述

我这里有个问题,不明白为什么我不能打印我的函数指针的内存地址。谁能解释为什么?谢谢!

#include <stdio.h>
#include <iostream>

void displayFourIncrementVar(int &x)
{
    printf( "%d\n", 4 );
    x++;
}

int main()
{
    int y = 4;
    int *z = &y;
    std::cout << *z << std::endl;
    std::cout << z << std::endl << std::endl;
    //printing out z we have an address.  

    void (*garbage)(int&) = &displayFourIncrementVar;
    std::cout << garbage << std::endl << std::endl;
    //Printing out garbage we have no address, instead we get 1, why's that?
    //I thought pointers store memory addresses in dexadecimal.

    int x = 2;
    (*garbage)(x);
    std::cout << x << std::endl; 
    return 0;
}

标签: c++functionpointers

解决方案


推荐阅读