指针数组与数组学习

发布者:和谐相伴最新更新时间:2015-09-18 来源: eefocus关键字:指针数组  数组学习 手机看文章 扫描二维码
随时随地手机看文章
今天看见一段代码,有点懵懂,如下
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”,认识后不在模糊。
关键字:指针数组  数组学习 引用地址:指针数组与数组学习

上一篇:将FATFS移植STM32RBT6遇到的挂载不成功和返回值问题
下一篇:基于ARM926EJ-S的温湿度无线监控系统的设计

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved