首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >传递的指针的strtod定义和类型

传递的指针的strtod定义和类型
EN

Stack Overflow用户
提问于 2012-09-22 03:26:02
回答 2查看 243关注 0票数 0

从定义double strtod ( const char * str, char ** endptr );

C参考站点为这种强大的功能提供了一个示例:

代码语言:javascript
复制
char szOrbits[] = "365.24 29.53";
char * pEnd;
double d1, d2;
d1 = strtod (szOrbits,&pEnd);
d2 = strtod (pEnd,NULL);

如果endptr应该是char **类型,为什么要在这里使用char *pEnd?而不是char **pEnd

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-22 03:29:13

pEnd的类型为char *&pEnd的类型为char **

C通过值将参数传递给函数,因此要修改指针,您需要传递指向该指针的指针。

您可以直接定义char **,但需要将其初始化为char *,因为其想法是strtod正在修改char *

像这样:

代码语言:javascript
复制
char *q;
char **p = &q;

d1 = strtod (szOrbits, p);

显然,中间p指针不是必需的,您可以直接使用&q

票数 6
EN

Stack Overflow用户

发布于 2012-09-22 03:28:56

正如您所观察到的,pEnd是一个char*。对strtod()的第一个示例调用将&pEnd作为第二个参数传递。&pEndpEnd的地址,因此属于char**类型。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12536967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档