C++数组作为指针问题

标签 c++ arrays pointers char

为什么这是可能的:

char buf[10], *pbuf = buf, **ppbuf = &pbuf;

这不是:

char buf[10], **ppbuf = &buf;

据我了解,第二行只是第一行的简写。

最佳答案

它们不等价。

*pbuf = buf

这意味着,“pbuf 是指向类型char 的指针,其值是buf 的地址。”因为 buf 是一个字符数组,所以这是可行的。

**ppbuf = &pbuf

这意味着,“ppbuf 是指向类型char 的指针,其值为pbuf 的地址。”因为 pbuf 是一个指向 char 类型的指针,所以这是可行的。

**ppbuf = &buf

这意味着,“ppbuf 是指向类型char 的指针,其值为buf 的地址。”由于 buf 是一个字符数组,因此失败。

关于C++数组作为指针问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4428819/

相关文章:

c++ - 获取和设置不更新对象

c++ - 如何在C++中找到桌面路径

c++ - 分离轴定理错误触发

查找数组中是否缺少元素的复杂性

arrays - 将顺序字符串构建到数组中(快速)

c - malloc() 的返回值和数组名有什么区别

c++ - 如何获得耗时百分比?

c++ - Qt 4.7 : TCP thread, 数据传输导致内存泄漏

c - 将链表数组传递给函数

c - 在 C DLL 中使用双 * 或短 *,在 C# 中使用 pinvoke 做什么