返回介绍

6.1 关于指针

发布于 2025-02-22 14:00:42 字数 546 浏览 0 评论 0 收藏 0

这是计算机科学中最基础的概念之一。通常,大数组、结构或对象经常被传递给其它函数,而传递它们的地址要更加简单。更重要的是:如果调用函数要修改数组或结构中的数据,并且作为整体返回,那么最简单的办法就是把数组或结构的地址传递给函数,让函数进行修改。

在 C/C++中指针就是某处内存的地址。

在 x86 中,地址是以 32 位数表示的(占 4 字节);在 x86-64 中是 64 位数(占 8 字节)。顺便一说,这也是为什么有些人在改用 x86-64 时感到愤怒——x64 架构中所有的指针需要的空间是原来的两倍。

通过某种方法,只使用无类型指针也是可行的。例如标准 C 函数 memcpy(),用于把一个区块复制到另外一个区块上,需要两个 void*型指针作为输入,因为你无法预知,也无需知道要复制区块的类型,区块的大小才是重要的。

当函数需要一个以上的返回值时也经常用到指针(等到第九章再讲)。scanf() 就是这样,函数除了要显示成功读入的字符个数外,还要返回全部值。

在 C/C++中,指针类型只是用于在编译阶段进行类型检查。本质上,在已编译的代码中并不包含指针类型的信息。

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文