【问题标题】:simple C/C++ question简单的 C/C++ 问题
【发布时间】:2011-03-16 01:43:14
【问题描述】:

我这样做:

char asa[2];
char c = '2';
asa[0] = c;
asa[1] = '\0';
printf("%s", asa);

在代码验证方面是否正确?

如果我调试 asa 值在调用 printf 之前不会更新...

【问题讨论】:

  • 欢迎来到 Stack Overflow! “对吗?”是什么意思?你想做什么?很难知道什么是“正确的”而不知道什么是“错误的”。
  • 欢迎大神。你的代码是正确的。您是否使用可视化调试器来检查 asa 的值?
  • 你编译优化了吗?
  • 在我所知道的所有调试器上,源代码中指向当前行的(->) 指针向您显示下一个 将执行什么。因此,如果它指向(->) printf("%s", asa);,则意味着接下来将调用printf 函数。

标签: c++ c char


【解决方案1】:

是的,没错。

而且我的答案至少需要这么长。

【讨论】:

  • 我更喜欢使用 ***** FILLER ****** ;-)
【解决方案2】:

代码是正确的,是的。至于为什么您的值没有更新,可能与您的 IDE 有关。

【讨论】:

    【解决方案3】:

    代码本身是正确的。

    至于调试的事情,你确定是这样吗?当调试器在 asa[1] = '\0' 上时,尝试检查 asa[0] 的值;线。该值应立即更新。如果不是,则可能是调试器的问题,而不是您的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多