我不明白爲什麼在url_split
功能,我可以使用a++
,但在main
功能無法使用key_value++
,它們具有相同的類型......關於指針數組添加本身(++)
void url_split(char *src, char **host, char *a[])
{
char const *p1 = "?";
char const *p2 = "&";
*host = strtok(src, p1);
char *str;
while((str = strtok(NULL, p2)))
{
*a = str;
a++;
}
*a = str;
}
int main(int argc, char *argv[])
{
char *host;
char *key_value[100];
char url[] = "http://www.baidu.com/s?wd=linux&cl=3";
url_split(url, &host, key_value);
printf("host = %s\n", host);
while(*key_value)
{
printf("key-value : %s\n", *key_value);
key_value++;
}
return 0;
}
非常感謝! – user1309502 2012-04-06 10:34:32
我認爲它通過調用函數之間的指針,我的意思是它只複製地址值,因爲c通過值傳遞。 – user1309502 2012-04-06 10:37:48