用于解析选项的switch case

Use*_*007 2 c pointers

我正在编写一个简单的程序,它从用户那里获取参数并处理它们.我在argv中的参数是二维数组.但是当我运行程序时,我得到垃圾值和分段错误错误.我已经尝试使用argc作为终止条件并且它有效.但我想只使用指针.指针在这里做错了什么.

#include<stdio.h>
int main( int argc, char *argv[])
{
    while (++(*argv))
    {
        if ( **argv == '-' )
        {
            switch (*argv[1])  
            {
                default:
                    printf("Unknown option -%c\n\n", (*argv)[1]);
                    break;
                case 'h':
                    printf("\n option h is found");
                    break;
                case 'v':
                    printf("option V is found");
                    break;
                case 'd':
                    printf("\n option d is found");
                    break;
            }
        }
        printf("\n outside while : %s", *argv);
    }
}
Run Code Online (Sandbox Code Playgroud)

程序运行方式:

./a.out -h -v -d
Run Code Online (Sandbox Code Playgroud)

谢谢

AnT*_*AnT 7