我在这里声明错了什么?

What did I declare wrong here?

我确定这是一个简单的问题,但它让我卡了几个小时。

#include <iostream>
using namespace std;

int main()
{
  char name = mark;
  int id = 0410448;

  cout << name << " " << id << endl;

  return0;
}

它给我一个错误,就像我宣布他们错了一样。任何帮助,将不胜感激。

char name = mark;

将不起作用。 char只能取1个字符,而且还需要用引号括起来。

你需要做的是这样的。

#include <string> //this goes at the top


std::string string_name = "this is a string";

编辑:如果您不想使用,那么您将需要一个字符数组

char name[];

char* name;

Will 会修复您的代码

int main()
{
    char name[] = "mark";
    int id = 410448;
    std::cout << name << " " << id << std::endl;
return 0;
}

最后一件事,您不能使用 0410448,因为它会尝试将其视为八进制。从您的整数中删除 0。

这段代码有 4 个错误:

  • include 应该是:

    #include <iostream>

    • 为什么?您必须指定必须使用预处理器指令的头文件。尽管这可能是由于 SO 格式帖子的方式发生的...
  • char name = mark应该是char* name = "mark";或者char name[] = "mark";

    • 为什么?一个 char 只能容纳 1 个单个字符,因此您需要一组字符来存储完整的字符串 "mark",它必须用双引号引起来才能使其成为字符串而不是另一个变量的名称。
  • int id = 0410448; 应该是 int id = 410448;

    • 为什么?如果你以一个前导零开始一个数字,这意味着它是一个八进制(base8)数字,并且这个数字只从 0 到 7,而不是十进制,从 0 到 9 或十六进制,从 0 到 F .
  • return0 应该是 return 0;

    • 为什么? return0 是一个变量名,但您从未为其指定定义或值,您本质上想要的是使用 return 关键字 和值0 表示程序成功结束。