小编Sou*_*jee的帖子

当一个通过另一个参数的引用传递时,printf如何处理它的参数

我发现了一些有趣的东西,但无法解释它.我正在编写一个简单的例程来反转字符串.这很好,没有抱怨.

我的问题在于printf.当我单独打印原始字符串时,它打印正确,但是当我打印原始字符串作为第一个arg,而函数调用reverse作为第二个时,两者都显示为反转.

输出:

|| abcdthelgko ||
Orig Str:| okglehtdcba |,Rev Str | okglehtdcba |

码:

char* ReverseStr(char* str, int len)
{
  char *start = &str[0], *end = &str[len-1];
  char temp;

  while(start < end)
  {
    temp = *start;
    *start = *end;
    *end = temp;

    start++;
    end--;
  }
  return str;
}

int main()
{
  char str_unique[] = "abcdthelgko";
  int str_unique_len = sizeof(str_unique)/sizeof(str_unique[0]);

  printf("\n || %s || \n", str_unique);
  printf("Orig Str: | %s |, Rev Str | %s |\n", str_unique, ReverseStr(str_unique, …
Run Code Online (Sandbox Code Playgroud)

c string printf pointers arguments

4
推荐指数
1
解决办法
496
查看次数

标签 统计

arguments ×1

c ×1

pointers ×1

printf ×1

string ×1