C++ 代码的了解

C++ 代码的理解!
想问下大家:①*(cUid + j) = *(pInfo + i * 16 + j);这句是什么意思;②m_list1这个列表有没有显示两列数据;左列是cUid,右列是1.
	char pInfo[1024];
char cUid[17];
int nLen = 0;
int nUidcount = 0;
int j=0;
nFlag = RD_InventoryTagPsSingle(g_hComm, g_nIndex, pInfo);
if((nFlag == 0) && (pInfo != ""))
{
nLen = strlen(pInfo);
nUidcount = nLen / 16;
for(int i=0; i<nUidcount; i++)
{
for(int j=0; j<16; j++)
{
*(cUid + j) = *(pInfo + i * 16 + j);
}
*(cUid + j) = '\0';
m_uid = cUid;
int nItemCount = m_list1.GetItemCount();
m_list1.InsertItem(nItemCount,cUid);
m_list1.SetItemText(nItemCount,1,"1");
m_list1.EnsureVisible(nItemCount,FALSE);
}
}
UpdateData(FALSE);

------解决方案--------------------
第一个问题:
那个语句就是将 char pInfo[1024]; 里面的字符分成若干组用的。具体你可以单步调试看一个例子,就能看出来了。
i*16用来获得每次截取的起始位置,j主要用来控制cUid中的位置以及相对于初始截取位置的偏移量。
------解决方案--------------------
*(cUid + j) = *(pInfo + i * 16 + j);
相当于
cUid[j]=pInfo[i*16+j];
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

哦,感觉是将得到的pInfo按17位的规格截取为Uidcount个,然后将这若干个在cUid中显示出来,但是调试中显示不了cUid 这是什么原因呢??后面一列的“1”这一列可以正常显示。

IDE里面调试时显示不了cUid,你不会加一句printf("cUid==%d\n",cUid);让运行时显示cUId的值吗?

我这是MFC工程~~~

那就
//这句加到stdafx.h中
#include <stdio.h>

//这几句加到要看变量值的地方
FILE *f;
f=fopen("d:\\mylog.txt","a");
fprintf(f,"cUid==%d\n",cUid);
fclose(f);
//然后查看d:\\mylog.txt最后一行的内容

//活人不会被尿憋死的!(^_^)