我认为如果指向char数组的ac指针增加,那么它将指向该数组中的下一个元素.但是当我尝试这个时,我发现我必须增加两次.使用sizeof(char)尝试增量我发现添加char的大小太多,所以必须将它除以2.
#includeint main(int argc, char * argv[]){ char *pi; int i; pi = argv[1]; printf("%d args.\n",argc-1); printf("input: "); for(i=0;i 难道我做错了什么?或者我误解了增加指针的方法?
1> phihag..:sizeof(char)保证为1,但sizeof(char*)不是.
尽管如此,您的功能只能偶然发挥作用.
例如,尝试使用以下参数调用它:
abc defg这将产生:
2 args. input: a, c,这是完全错误的.问题是你正在增加一个指向argv元素1的指针,而不是指向argv的指针.
试试这个:
#includeint main(int argc, char * argv[]){ char **pi; int i; pi = argv + 1; printf("%d args.\n",argc-1); printf("input: "); for(i=0;i 这将打印每个参数的第一个字符:
2 args. input: a, d,