复杂的指针声明

标签 c pointers

最近,我遇到一个问题,询问这两个声明之间的区别。

char far *far *scr;
char far far **scr;

现在,我知道在第一个声明中,

char far *far *scr;

src是一个远指针,它包含指向char的远指针的地址 即 src 是一个指向 char 的远指针的远指针。

但是,我似乎不明白第二个声明的含义。 这是否意味着 src 是一个指针,其中包含指向 char 的远指针的地址? 如果是这样,那么第二个声明是否与 char 远 ** src ??

最佳答案

我可能会将这些声明读作

char far *far *scr;
// scr is a far pointer to a far pointer to char
// char (far *)(far *)scr;

char far far **scr;
// scr is a pointer to a far far pointer to char
// char (far far *)*scr;

关于复杂的指针声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24757647/

相关文章:

c - 递归函数的奇怪行为

c - tm struct time.h 未规范化

我可以创建一个函数,它接受一个指向数组的指针,该数组在每次调用时可能包含不同类型的数字吗?

c++ - 类和类中的指针

c++ - N 叉树实现 : cannot convert 'Tree::node*' to 'node*' in assignment

c - typedef 何时成为实际类型?

循环和数组的 C 到 MIPS 转换

被C语法搞糊涂了

c++ - 尝试解除分配 char 数组 : _BLOCK_TYPE_IS_VALID(pHead->nBlockUse) 的指针时出错

c++ - 奇怪的模板和成员函数指针错误(C2373、C2530)