怎么 获取一个函数指针的地址值

怎么 获取一个函数指针的地址值,第1张

HMODULE hDll = LoadLibrary(TEXT("DllExportsExdll")); // 加载一个DLL

FARPROC pfn = GetProcAddress(hDll, "Func"); /// 获取函数地址,第一个参数为DLL模块句柄,第二个参数为函数名称

char p=new char;

DWORD AddValue=(DWORD)p;//强制类型转换

C++this指针:一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。

首先更正一下楼主错误,int 型的指针不可以用来获取char型的地址的,这样会产生错误,如果你的编译系统没有报错,实际上也有错误。

第二,字符串实际上就是等于字符数组。

ptr = &str[2];

printf("%d",ptr);

reptr = (ptr);

printf("%c",reptr);

printf("\n");

这个可以输出的。就是C

ptr = &str[2];

printf("%c",(ptr+1));

输出的是第4个字符‘/0’就是“空”,可能楼主由此判断无法输出

ptr = &str[1];

printf("%c",(ptr+1));

就能输出C了

int 应该不可以,不过 int的话就可以

char str[4] = "abc";

int ptr;

char reptr;

ptr =(int)&str[0];

printf("%d",(char )ptr);

reptr = ((char )ptr);

printf("%c",reptr);

printf("\n");

实际上利用强制类型转换,用int来存数据,意义上char 和int都是整形,所以可以一定程度上转换

首先,应该明确,你这种方法输出的只是两个字符,并不是按照字符串进行输出。

如果是string类型,可以用substr函数求子串。

但是char数组的话,就没有什么好的办法,只能把要输出的字符串存放到新的字符串中,然后再输出出来。

具体程序如下:

#include<iostream>

using namespace std;

int main()

{

    char p;

    char name[] = { "basic", "for", "c++" };

    p = name + 1;

    char res[3];

    strncpy(res, p, 2);

    res[2] = '\0';

    cout << res << endl;

    return 0;

}

结果如下:

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始cpp文件,例如:testcpp。

2、在testcpp文件中,输入C语言代码:int q = 10;int p = &q;printf("%d\n", p); 。

3、编译器运行testcpp文件,此时成功输出了指针p所指向的变量q的值。

以上就是关于怎么 获取一个函数指针的地址值全部的内容,包括:怎么 获取一个函数指针的地址值、如何获取C++指针的地址数值、c语言 指针 取值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9556516.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存