- 论坛徽章:
- 0
|
忽然发现这个问题我还不知道:
int
main()
{
char ss[20]=""
printf("0x%x\n",ss);
printf("0x%x\n",&ss);
}
打印出来的结果是ss=&ss,而如果换成 char *ss,则不同;将数组ss移到main外定义,并赋初值,结果相同;如果定义函数ss(),打印结果依然相同,谁能解释一下?
第二个问题:
void fun(char code[],int size)
{
char temcode[6000]="";
memset(temcode,0,6000);
memcpy(temcode,code,size);
//关键的这里
((void (*)(void))temcode )();//调用函数
//请问这里是上面那样写还是((void (*)(void)) &temcode )(); 为什么?
}
int main()
{
char code[]="\x12\x34.......";\\这里的代码是一段函数的16进制码,函数类型为void(*)(void)
fun(code,sizeof(code));
}
[ 本帖最后由 lunight 于 2006-9-19 15:19 编辑 ] |
|