我怎么能解释这个:var_ptr_char+strlen(var_ptr_char) 在下面的 C 代码中:
#define INT_CONSTANT 80
char var_ptr_char[1024];
strcat(var_ptr_char,"SOMETHING");
sprintf(var_ptr_char+strlen(var_ptr_char),":%d",INT_CONSTANT);
以及为了通过 snprintf 更改 sprintf 我将放置多少大小。
谢谢!
的第一个参数sprintf
是一个char
指针(即char
缓冲区)。该函数将在该缓冲区“打印”,并将从指针指向的位置开始。
将N加到指针上,表示指向第 N 个位置。因此,如果我们添加strlen(var_ptr_char)
到var_ptr_char
,我们实际上是将指针传递给缓冲区的最后一个字符(假设它已经包含一个有效的字符串)。
snprintf
通话可能是这样的:
snprintf(var_ptr_char + strlen(var_ptr_char), 1024 - strlen(var_ptr_char) - 1, ":%d", INT_CONSTANT);
TL;DR:它将字符串附加到已存储的字符串的末尾var_ptr_char
。