机器人车技术开发分享网
指针数组与数组学习
  • 首页 > 单片机c语言
  • 作者:小v
  • 2014年12月23日 20:49 星期二
  • 浏览:1987
  • 字号:
  • 评论:0
  • 今天看见一段代码,有点懵懂,如下
    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 != '\0')
    {
    if(*c == '\t')
    *c = ' ';
    c++;
    }
    c = cmdline;
    i = 0;

    while(*c != '\0')
    {
    if(state == STATE_WHITESPACE)
    {
    if(*c != ' ')
    {
    argv[i] = c;
    i++;
    state = STATE_WORD;
    }
    }
    else
    {
    if(*c == ' ')
    {
    *c = '\0';
    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”,认识后不在模糊

      您阅读这篇文章共花了:  
    二维码加载中...
    本文作者:小v      文章标题: 指针数组与数组学习
    本文地址:http://blog.cvosrobot.com/?post=5
    版权声明:若无注明,本文皆为“机器人车技术开发分享网”原创,转载请保留文章出处。

    返回顶部| 首页| 手气不错| 捐赠支持| 自定义链接| 自定义链接| 自定义链接| 手机版本|后花园

    Copyright © 2014-2017 机器人车技术开发分享网   京ICP备14059411 Copyright 2014-2019 小v工作室 版权所有 All Rights Reserved

    sitemap