qq_29670983
qq_29670983
2015-08-17 09:25
采纳率: 43.1%
浏览 1.9k

请问一个MFC结构体数组的问题

INPUT iput[1];
memset(iput, 0, 1 * sizeof(INPUT));
iput[0].type = INPUT_KEYBOARD;
iput[0].ki.wVk = VK_ESCAPE;
SendInput(1, iput, sizeof(INPUT));
如果第一句改成INPUT iput;的话 最后一句的第二个参数前面要加上取地址,请问这是为
什么呀?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • guojianbo01
    谁是小胖 2015-08-17 09:38
    已采纳

    INPUT iput[1];是一个数组类型,存储相关内容一个地址值, iput第一个元素就是指向iput数组的首地址
    最后一句要的是一个地址,而不是内容

    INPUT iput 是定义的一个变量后,存储是变量的内容,而不是一个地址,最后一句的要的是地址,所以要加&

    点赞 评论
  • yangbo50304
    yangbo50304 2015-08-17 09:33

    SendInput第二个参数是指针类型或者引用类型。

    点赞 评论
  • 91program
    91program 2015-08-17 10:12

    关键在于 SendInput() 函数的形参定义,它需要什么样的参数,你的变量就必须适应它的要求。如果它要求是指针,则
    1)定义成 INPUT iput[1]; 时 input 是一个常量指针
    2)定义成 INPUT iput; 时,input 是一个结构体变化,不是指针。所以在做为 SendInput() 函数的参数时必须取地址,按指针传参数。

    点赞 评论

相关推荐