2
这里的原型常规的C标准库strtol
:为什么strtol需要一个指针而不是单个指针?
long int strtol(const char* str, char** endptr, int base);
典型用途:
const char* str = "123a";
char* endptr;
long int value = strtol(str, &endptr, 10);
if (*endptr)
// Do something
else
// Do something else
为什么做这样?为什么不传递一个局部变量的地址?
例子:
long int strtol(const char* str, char* endptr, int base);
用法:
const char* str = "123a";
char end;
long int value = strtol(str, &end, 10);
if (end)
// Do something
else
// Do something else
我敢肯定有这个设计决定是合情合理的理由,但我不太看出来。
什么问题?第二个参数的目的是更新一个指向解析序列末尾的指针... –