我曾认为,如果一个指向char数组的C指针被递增,它将指向该数组中的下一个元素。但是当我尝试这样做时,我发现我必须递增两次。通过使用sizeof(char)进行递增尝试后,我发现添加char的大小太多了,所以必须除以2。
#include <stdio.h>
int main(int argc, char * argv[]){
char *pi;
int i;
pi = argv[1];
printf("%d args.\n",argc-1);
printf("input: ");
for(i=0;i<argc-1;i++){
printf("%c, ",*pi);
/*The line below increments pi by 1 char worth of bytes */
//pi+=sizeof(pi)/2;
/* An alternative to the above line is putting pi++ twice - why? */
pi++;
pi++;
}
printf("\n");
return 0;
}
我做错了什么吗?还是我误解了指针递增的方法?