C指针和数组的静态偏差
在C中处理一些与指针相关的事情。我想知道第三行在做什么C指针和数组的静态偏差,c,arrays,pointers,static,C,Arrays,Pointers,Static,在C中处理一些与指针相关的事情。我想知道第三行在做什么 char *return_pointer; static char string_buffer[MAX_WORD_SIZE]; return_pointer = &string_buffer[sizeof(string_buffer)-1]; *return_pointer = '\0'; 声明 return_pointer = &string_buffer[sizeof(string_buffer)-1]; 正
char *return_pointer;
static char string_buffer[MAX_WORD_SIZE];
return_pointer = &string_buffer[sizeof(string_buffer)-1];
*return_pointer = '\0';
声明
return_pointer = &string_buffer[sizeof(string_buffer)-1];
正在将string\u buffer
的最后一个元素的地址分配给return\u指针
声明
*return_pointer = '\0';
只是用空字符终止字符串\u缓冲区。语句
return_pointer = &string_buffer[sizeof(string_buffer)-1];
正在将string\u buffer
的最后一个元素的地址分配给return\u指针
声明
*return_pointer = '\0';
只是用空字符终止string\u buffer
。在该行中您不理解的是什么?它似乎用于在缓冲区中的最后一个字符终止字符串。可能以后还需要使用return\u pointer
,但正如代码段所示,最后两行可以通过以下方式完成:string_buffer[sizeof(string_buffer)-1]='\0'代码>。也许这有助于澄清。在任何一种情况下,他们都要确保缓冲区的最后一个字节是空的('\0'
)。我想也可能是为了可读性。在那一行中你不明白的是什么?它似乎是用来在缓冲区的最后一个字符处终止字符串的。可能以后还需要返回\u指针
,但正如代码片段所示,最后两行可以通过以下方式完成:string_buffer[sizeof(string_buffer)-1]='\0'代码>。也许这有助于澄清。在任何一种情况下,他们都要确保缓冲区的最后一个字节是空的('\0'
)。我想也可能是为了可读性。另外,如果我使用*--ptr_return=*message++;我是在用指针递增地址吗?你需要这样做。另外,如果我使用*--ptr_return=*message++;我是在递增地址,然后使用指针。你需要。