我在this page的C代码中找到了:
uint16_t* terminal_buffer;
这是什么意思?它与uint16_t *terminal_buffer;
相同吗?
比变量terminal_buffer更像一个数组:
terminal_buffer[index] = make_vgaentry(' ', terminal_color);
有人可以解释一下它是如何工作的吗? 感谢。
答案 0 :(得分:1)
这是什么意思?它与
uint16_t *terminal_buffer;
相同吗?
是的,如果*
位于类型名称和变量名称之间,那么uint16_t * terminal_buffer;
的位置是无关紧要的,因此如果需要,可以写terminal_buffer[index] = make_vgaentry(' ', terminal_color);
,因为空格被忽略。
比变量terminal_buffer像数组一样加入:
*(terminal_buffer + index) = make_vgaentry(' ', terminal_color);
因为这相当于
{{1}}
所以它基本上是指针算术运算和解除引用。