各位大侠帮我看看几个指针类型

发布于 2022-10-15 06:51:23 字数 1512 浏览 19 评论 0

case 'a':
                                if (--argc <= 0)
                                        usage ();
                                addr = strtoul (*++argv, (char **)&ptr, 16);   // strtoul (将字符串转换成无符号长整型数) ????????
                                if (*ptr) {
                                        fprintf (stderr,
                                                "%s: invalid load address %s\n",
                                                cmdname, *argv);
                                        exit (EXIT_FAILURE)

这是我程序的一部分请问
(1)addr = strtoul (*++argv, (char **)&ptr, 16);其中“(char **)&ptr”是什么意思啊。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

南汐寒笙箫 2022-10-22 06:51:23

本帖最后由 maixl 于 2011-05-17 08:58 编辑

用男人看下就知道了man strtoul
If  endptr  is  not  NULL,  strtoul()  stores  the address of the first
       invalid character in *endptr.  If there were no  digits  at  all,  str-
       toul()  stores  the  original value of nptr in *endptr (and returns 0).
       In particular, if *nptr is not `\0' but **endptr is `\0' on return, the
       entire string is valid.
意思是在开始运算后,遇到第一个不符合的字符返回同时,把当前指针位置赋给endptr,
比如strtoul(sd12345efg, &ptr, 0),返回12345,同时ptr指向efg

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文