在阅读apache的源码时,发现一处使用指针的指针的案例,平时没有够多考虑指向指针的指针这个问题,今天顺便理解了一下,这里沾上apache的源码,这时apr一个很经常用的函数,就是根据字符串的中断值来获取中断值隔开的字符串,比如“T=0&L=1&X=2&Y=3”,这个函数可以通过‘&’来获取T L X Y的值,它会将开始的字符串地址输入str,中断值输入为sep,last是中断值后面字符串开始的地址,获取每个中断值隔开的字符串后,将中断值所在的位置设为‘/0’,这样取走每一个字符串,每取走一个字符串就将中断值后面的字符串起始地址传给last,这样一个一个的获取所有的字符串,但是这里的last为什么是指向指针的指针呢?下面是函数源码。
APR_DECLARE(char *) apr_strtok(char *str, const char *sep, char **last)
{
char *token;
if (!str) /* subsequent call */
str = *last; /* start where we left off */
/* skip characters in sep (will terminate at '\0') */
while (*str && strchr(sep, *str))
++str;
if (!*str) /* no more tokens */
return NULL;
token = str;
/* sk