C++ 我可以在声明后初始化char类型变量吗?

C++ 我可以在声明后初始化char类型变量吗?,c++,char,initialization,C++,Char,Initialization,您好,这是程序员入门,我想我还不是程序员,因为我还在学习基本语法 这是我的问题。可以在C++中声明后初始化char类型变量吗?还是只能在声明时初始化字符?您只能在定义变量时初始化变量。比如说 char ch = 'a'; 将ch定义为char并使用字符literal'a'对其进行初始化。如果你有 char ch; //... ch = 'a'; 然后您不再初始化ch,而是分配给它。直到你到达ch='a'ch有一些未指定的值1,在到达ch='a'之前使用它的值将是未定义的行为。理想情况下,您应

您好,这是程序员入门,我想我还不是程序员,因为我还在学习基本语法


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

您只能在定义变量时初始化变量。比如说

char ch = 'a';
ch
定义为
char
并使用字符literal
'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
//一些代码
//哦,我需要从用户那里得到一个字符
标准::cout>ch;//现在ch有了一个值
//更多代码


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

您可以声明一个char变量,而不是在声明后初始化它并修改它。但最好在声明没有垃圾时初始化。什么类型的变量?成员变量?全局变量?局部变量?静态变量?如何申报?是外人吗。。。示例代码可能会有所帮助。我想知道字符和字符数组之间是否存在混淆。哦,感谢您真诚的回答。但是,如果我尝试您称之为赋值给变量的方法,那么我的编译器会这样说:[Error]从'const char*'到'char'[-fppermissive]的转换无效。你能告诉我我在这方面犯了什么错误吗?@KYUNGWANRYOO you.ll需要发布一个新的问题,其中包含给出问题的代码。听起来你在处理c字串,而这是另一种怪兽。