字符指针数组/字符串指针
一个关于main()函数参数的问题。
如果按书上原来的写法,没有“[]”,argv是不是象我理解的是个字符串指针,执行++argv后指到某个字符串的'\0'后去了?argv不是指针数组名吗,也就是数组的首地址,是个常量,为什么可以自增运算?
例:
main(int argc,char *argv[]) /*“[]”不可省略,否则输出不对!*/
{ while(argc-->1)
printf("%s\n",*++argv);
}
本例是显示命令行中输入的参数。如果上例的可执行文件名为e24.exe,存放在A驱动器的盘内。因此输入的命令行为:
C:\>a:e24 BASIC foxpro FORTRAN
则运行结果为:
BASIC
foxpro
FORTRAN
附:用了一个很有意思的教材,经常放飞机,搞得还要要边看边调试书中的例题。