使用指针作为数组 - C
Using pointer as an array - C
我在 this page 的 C 代码中找到:
uint16_t* terminal_buffer;
这是什么意思?和uint16_t *terminal_buffer;
一样吗?
比变量 terminal_buffer 像数组一样访问:
terminal_buffer[index] = make_vgaentry(' ', terminal_color);
有人可以向我解释一下它是如何工作的吗?
谢谢
What does it mean? Is it the same as uint16_t *terminal_buffer;
?
是的,如果 *
位于类型名称和变量名称之间,则它的位置无关紧要,因此您可以根据需要编写 uint16_t * terminal_buffer;
,因为空格会被忽略。
Than variable terminal_buffer is accesed like an array:
terminal_buffer[index] = make_vgaentry(' ', terminal_color);
因为这相当于
*(terminal_buffer + index) = make_vgaentry(' ', terminal_color);
所以它基本上是一个指针算术运算和一个解引用。
我在 this page 的 C 代码中找到:
uint16_t* terminal_buffer;
这是什么意思?和uint16_t *terminal_buffer;
一样吗?
比变量 terminal_buffer 像数组一样访问:
terminal_buffer[index] = make_vgaentry(' ', terminal_color);
有人可以向我解释一下它是如何工作的吗? 谢谢
What does it mean? Is it the same as
uint16_t *terminal_buffer;
?
是的,如果 *
位于类型名称和变量名称之间,则它的位置无关紧要,因此您可以根据需要编写 uint16_t * terminal_buffer;
,因为空格会被忽略。
Than variable terminal_buffer is accesed like an array:
terminal_buffer[index] = make_vgaentry(' ', terminal_color);
因为这相当于
*(terminal_buffer + index) = make_vgaentry(' ', terminal_color);
所以它基本上是一个指针算术运算和一个解引用。