keta0123
驱动牛犊
驱动牛犊
  • 注册日期2005-04-07
  • 最后登录2005-05-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2686回复:9

问一个strcpy的句子的意思

楼主#
更多 发布于:2005-05-08 08:45
strcpy(deviceName, \"\\\\\\\\.\\\\\");
strcpy(deviceName + sizeof(\"\\\\\\\\.\\\\\") - 1, rootHubName);
请问这个是什么意思?
请各位大虾不吝赐教

[编辑 -  5/8/05 by  keta0123]

[编辑 -  5/8/05 by  keta0123]
hongk111222
驱动牛犊
驱动牛犊
  • 注册日期2007-06-25
  • 最后登录2007-08-06
  • 粉丝0
  • 关注0
  • 积分350分
  • 威望36点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-07-06 10:15
williamhe ,thank u ,i know  it
keta0123
驱动牛犊
驱动牛犊
  • 注册日期2005-04-07
  • 最后登录2005-05-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-05-09 13:55
呵呵, :P知道了, ;)
williamhe
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2010-10-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-05-09 12:42
不好意思哈, sizeof(\"\\\\\\\\.\\\\\") -1 的确是 4, 我的错...
a0041059a
驱动小牛
驱动小牛
  • 注册日期2005-05-09
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分46分
  • 威望6点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-05-09 10:53
查帮助便可以了
maqian
驱动中牛
驱动中牛
  • 注册日期2002-08-07
  • 最后登录2014-09-16
  • 粉丝2
  • 关注1
  • 积分12分
  • 威望120点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-05-09 10:17
我倒!
sizeof(\"\\\\\\\\.\\\\\") - 1是4!!!
C风格的字符串后面有一个\'\\0\'!!!
楼主,你应该自己看看MSDN或C书籍中对strcpy、strcat的介绍。
五花马,千金裘,呼儿将出换美酒。 我不喝酒,喝可乐。
keta0123
驱动牛犊
驱动牛犊
  • 注册日期2005-04-07
  • 最后登录2005-05-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-05-09 10:12
谢谢各位大虾指点,尤其是williamhe,呵呵
williamhe
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2010-10-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-05-08 20:55
strcpy(deviceName, \"\\\\\\\\.\\\\\");
strcpy(deviceName + sizeof(\"\\\\\\\\.\\\\\") - 1, rootHubName);
请问这个是什么意思?
请各位大虾不吝赐教


关于这个问题, 在下是这样看的:

windows函数strcpy的实现只有两个参数, 那么这里 deviceName + sizeof(\"\\\\\\\\.\\\\\") - 1 是第一个参数, rootHubName 是第二个参数, 意指将 rootHubName 中存储的字符串拷贝到指针空间 deviceName 中, deviceName 是一个已经初始化的指针, 也就是内存中一块存储单元的首地址, 以这个首地址为基准, 再加上 sizeof(\"\\\\\\\\.\\\\\") - 1  个单元的偏移量, 比方说, 如果deviceName的地址是0, sizeof(\"\\\\\\\\.\\\\\") - 1 算出来是 8(C风格的字符串后面有一个\"0\\\"), 这样, 就把rootHubName中的内容拷贝到首地址为 8 的连续空间里了....

[编辑 -  5/8/05 by  williamhe]
keta0123
驱动牛犊
驱动牛犊
  • 注册日期2005-04-07
  • 最后登录2005-05-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-05-08 15:41
请楼上说明百点,比如第二句
strcpy(deviceName + sizeof(\"\\\\\\\\.\\\\\") - 1, rootHubName);
呵呵,还有STRCAT是什么意思
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
9楼#
发布于:2005-05-08 12:02
后面哪个用来代替STRCAT的
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
游客

返回顶部