使用指针作为数组 - C.

时间:2015-02-07 07:12:03

标签: c arrays pointers types osdev

我在this page的C代码中找到了:

uint16_t* terminal_buffer; 

这是什么意思?它与uint16_t *terminal_buffer;相同吗? 比变量terminal_buffer更像一个数组:

terminal_buffer[index] = make_vgaentry(' ', terminal_color);

有人可以解释一下它是如何工作的吗? 感谢。

1 个答案:

答案 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}}

所以它基本上是指针算术运算和解除引用。