【问题标题】:Can I initialize char type variable after declaration? [duplicate]我可以在声明后初始化 char 类型变量吗? [复制]
【发布时间】:2019-05-02 17:32:43
【问题描述】:

你好,这是入门程序员,好吧,我想我什至还不是程序员,因为我还在学习基本语法。

这是我的问题。我可以在 C++ 中声明后初始化 char 类型变量吗?还是只能在声明的时候初始化char?

【问题讨论】:

  • 你可以声明一个char var而不是在声明后初始化它并修改它。但是最好在声明没有垃圾时进行初始化。
  • 什么样的变量?成员变量?全局变量?局部变量?静态变量?你如何声明它?是外部的吗? ...示例代码会有所帮助。
  • 我想知道字符和字符数组之间是否存在混淆。

标签: c++ char initialization


【解决方案1】:

您只能在定义变量时对其进行初始化。比如

char ch = 'a';

ch 定义为char,并使用字符文字'a' 对其进行初始化。如果你有

char ch;
//...
ch = 'a';

那么您不再初始化ch,而是分配给它。直到您到达 ch = 'a'; ch 有一些未指定的值1 并且在您到达 ch = 'a'; 之前使用它的值将是未定义的行为。理想情况下,您应该始终初始化一个变量,使其具有已知状态,并且由于您可以在任何时候声明一个变量,因此您可以推迟声明该变量,直到您知道要初始化它的内容或要立即设置它的时间.示例

//some code
// oh, I need to get a char from the user
std::cout << "Yo, user, give me a character: ";
char ch; // no initialization but it is okay as I set it immediately in the next line
cin >> ch; // now ch has a value
// more code

1:有些地方会为你初始化。例如,如果 ch 在全局范围内声明,那么它将为您初始化为零

【讨论】:

  • 哦,谢谢你的真诚回答。但是,如果我尝试你所说的分配给变量的方法,那么我的编译器会这样说:[错误] 从 'const char*' 到 'char' 的无效转换 [-fpermissive]。你能说出我在这方面犯了什么错误吗?
  • @KYUNGWANRYOO You.ll 需要使用给您问题的代码发布一个新问题。听起来你正在处理 c-strings,它们是不同的野兽。
猜你喜欢
  • 2012-01-28
  • 1970-01-01
  • 2013-02-01
  • 2023-04-09
  • 1970-01-01
  • 2012-02-11
  • 2019-05-12
  • 2023-02-02
  • 1970-01-01
相关资源
最近更新 更多