读书人

int main(int argc,char *argv[])中的

发布时间: 2012-03-13 11:21:10 作者: rapoo

int main(int argc,char *argv[])中的argv

C/C++ code
#include <stdio.h>#include <string.h>#define MAXLINE 1000int getline(char *line,int max);int main(int argc,char *argv[]){    char line[MAXLINE];    long lineno=0;    int c,except=0,number=0,found=0;    while(--argc>0 && (*++argv)[0]=='-')         while(c=*++argv[0])//这里的argv[0]怎么可以++,我知道argv是指向字符串数组的指针,请高手指点一下。                 switch(c)            {            .........            }    return 0;}


[解决办法]
数组名不能用++,但当它做参数时被转化成指针,所以++argv是可以的,argv[0]是字符串指针,当然也可以用了
[解决办法]


argv其实是char** 指针的指针

不就好理解啦

这还不能++




[解决办法]
探讨
int main(int argc,char *argv[]){

printf("%c\n",(*argv)[0]);
printf("%c\n",(*++argv)[0]);// 这里相当于: argv[1][0] ,就是命令后第一个参数的第一个字符
printf("%c\n",(*++argv)[0]);
printf("%c\n",(*++argv)[1]);
return 0……

[解决办法]
guo1737说的对
是文字常量,所以可以++
但是不能赋值,不能取地址,不能改变其内容
但由于是指针,可以++

讨厌的文字常量区

读书人网 >C语言

热点推荐