我怎么解释这个: 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所需的大小。
谢谢!
答案 0 :(得分:0)
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
中已存储字符串的末尾。