您的位置 首页 被动

指针数组与数组学习

今天看见一段代码,有点懵懂,如下Get_arg(Buff,argc,argv);staticvoidGet_arg(U8*cmdline,U8*argc,U8**argv){define

今日看见一段代码,有点懵懂,如下

Get_arg(Buff, &argc, argv);

static void Get_arg(U8 *cmdline, U8 *argc, U8 **argv)
{
#define STATE_WHITESPACE 0
#define STATE_WORD 1
U8 *c = NULL;
int state = STATE_WHITESPACE;
int i = 0;
*argc = 0;
if(strlen((const char*)cmdline) == 0)
{//指令字符串为空
return;
}
c = cmdline;
while(*c != )
{
if(*c == )
*c = ;
c++;
}
c = cmdline;
i = 0;
while(*c != )
{
if(state == STATE_WHITESPACE)
{
if(*c != )
{
argv[i] = c;
i++;
state = STATE_WORD;
}
}
else
{
if(*c == )
{
*c = ;
state = STATE_WHITESPACE;
}
}
c++;
}
*argc = i; //分化后指令字符串数
#undef STATE_WHITESPACE
#undef STATE_WORD
}
参数中这么指针还真是晕,疑问:
ComapanyData.printPasswd[0]=strtoul(argv[2],0,16);
我在使用中分明记住argv[2]是一个字符串,一个数组怎样会有字符串呢?
原来如此argv[]是个界说为u8 的指向指针的指针,也便是argv[]里的任何一个元素都是指针。
那么指针数组和和数组的差异在哪?自己学识学浅,只能了解到下边。
举例来说,界说u8 a[2];那么a[0]=1;a[1]=2;便是说数组能够界说为一个字符而不是字符串,
假如界说一个指针数组 u8 *b[2]那么b[0]能够为字符串便是b[0]=“123”,b[1]=“345”,知道后不在含糊。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/beidong/257202.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部