C - 将 char 数组转换为整数指针?

C - Casting char array to an integer pointer?

我有下面的源代码,其中有一行,我无法理解已经进行了转换。谁能解释一下? 我知道转换为整数指针 (int *),但这是不同的。 我无法理解最后一行的作用。它返回一个整数指针吗?还是我错了?

const unsigned char sc[] =  {  0x01, 0x01, 0x01, 0x01   };
return ((int (*)(void))sc)();

(int (*)(void))sc 获取数组 sc 的地址并将其转换为指向函数的指针 returns int.

() 最后调用这个函数,return 这个函数的值(类型 int)再次被 returned.

奇怪的是,看起来好像是要在地址 0x01010101 调用函数,但它却使用数组 sc 的地址,这可能是一个错误。