我用C代码中发现的this page:使用指针数组 - Visual C
uint16_t* terminal_buffer;
是什么意思?是否与uint16_t *terminal_buffer;
相同? 比可变terminal_buffer是accesed像数组:
terminal_buffer[index] = make_vgaentry(' ', terminal_color);
有人可以解释我是如何工作的? 谢谢。
我用C代码中发现的this page:使用指针数组 - Visual C
uint16_t* terminal_buffer;
是什么意思?是否与uint16_t *terminal_buffer;
相同? 比可变terminal_buffer是accesed像数组:
terminal_buffer[index] = make_vgaentry(' ', terminal_color);
有人可以解释我是如何工作的? 谢谢。
这是什么意思?是否与
uint16_t *terminal_buffer;
相同?
是的,在*
的位置是不相关的,如果它的类型名和变量名之间在所以你可以写uint16_t * terminal_buffer;
,如果你想要的,因为空间被忽略。
比可变terminal_buffer被accesed像的数组:
terminal_buffer[index] = make_vgaentry(' ', terminal_color);
因为这相当于
*(terminal_buffer + index) = make_vgaentry(' ', terminal_color);
所以它基本上是一个指针运算操作和解除引用。
我认为那里应该有括号。 – 2015-02-07 07:15:56
@remyabel在哪里? – 2015-02-07 07:16:15
*((E1)+(E2)),IIRC。 – 2015-02-07 07:16:33
我建议你在尝试内核开发之前学习该语言的基础知识。 – 2015-02-07 07:13:23
感谢您的有用答案... @remyabel – pruky 2015-02-07 07:14:36
@pruky,当您询问uint16_t * terminal_buffer;是否与uint16_t * terminal_buffer相同时,您清楚地显示出您对该语言的基本知识缺乏了解。如果没有对语言的基础知识有一个很好的理解,很可能你所得到的任何答案都很难理解。 – 2015-02-07 07:18:02