【发布时间】:2013-10-05 19:42:09
【问题描述】:
这是 C 标准库例程 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
我确信这个设计决定有一个合乎逻辑的原因,但我不太明白。
【问题讨论】:
-
有什么问题?第二个参数的目的是更新一个指向解析序列末尾的指针……