唉要喂!!
1,首先矫正一下:int main(int argc, char **argv)是正确的方式。而int main(int argc, char *argv)你从哪里看来的??那是不正确的,或者是书上笔误,不要被它愚弄了。
2,你首先要弄明白一个问题, "hello world" 这个字符 常量 的返回值是什么!!
一个字符串常量的返回值是char*, 反之你也可以用char*去存取字符串。
3, 现在char **argv 就好理解了,它就是一个指向字符串的指针。 当你在终端打入 Leds led_no 0 时,argv[0]就是Leds,argv[1]就是led_no, argv[2]就是 0; 如果你熟悉数组与指针的关系,那么这里的argv[n]也容易理解, 他们都是字符串!
4,sscanf(argv[1],"%d",&led_no) !=1 这一句:sscanf不同于scanf的地方是 sscanf从一个字符串中得到输入, 而scanf是你从终端输入。 这句就是,如果argv [1]这个字符串中含数字,那么就把它读入led_on. 并返回1,否则返回0