【发布时间】:2012-04-22 21:43:47
【问题描述】:
我正在阅读 C 语言程序(服务器/客户端通信的实现),我看到了:
for (i = 0; i < len; i++)
sprintf(nickmsg+i*2, "%02X", buf[i] & 0xFF);
这条线有什么作用?我特别不明白这一点:nickmsg+i*2。
nickmsg 是一个字符表,i 是一个整数。如果只是nickmsg,我会理解的,但这行的目的是什么?
谢谢。
【问题讨论】:
-
为什么downvotes/votes确实关闭了?这是一个非常合理的初学者问题,也是 C 中典型习语的一个很好的例子。
-
@AdamLiss 可能是因为任何人在搜索他们的问题时遇到这个问题的机会为零。
-
@AndrewFinnell:更改标题和标签使问题更容易找到,而且不比投票更费力。
-
关闭是因为“过于本地化”。我不知道为什么。十六进制表示在任何地方都是一样的,确定吗?
-
@AdamLiss 确实,我确信它是。我没有投反对票,只是回答了 cmets 提出的问题。但我会说,通过改变标题,它已经完全改变了原来的问题。标题回答了最初提出的问题。这个问题现在很有用,但是问题已经改变了。
标签: c arrays hex type-conversion printf