为什么这是可能的:
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/