C++ 为什么可以';我不能在这个成员函数中设置这个成员变量吗?
所以在这个函数中,它没有将breakout设置为6。当它打印出来的时候,我得到了一个“突破”,后面没有数字C++ 为什么可以';我不能在这个成员函数中设置这个成员变量吗?,c++,function,class,variables,output,C++,Function,Class,Variables,Output,所以在这个函数中,它没有将breakout设置为6。当它打印出来的时候,我得到了一个“突破”,后面没有数字 void tokens::driver() { //comment(getInput()); // std::cout<< "driver working"<<std::endl; breakout=6; std::cout<< "breakout"<<breakout<< std::endl; intege
void tokens::driver()
{
//comment(getInput());
// std::cout<< "driver working"<<std::endl;
breakout=6;
std::cout<< "breakout"<<breakout<< std::endl;
integerConstant(breakout);
//symbol(getInput());
std::cout<< "breakout"<<breakout<< std::endl;
}
上述语句将
6
的ascii值指定给不可打印的breakout
。最初breakout
设置为6,作为字符编码值,它是不可打印的ascii字符
将char
值6传递到cout
的一个可能效果是不显示任何内容。将其作为整数传递的一个很好的小技巧是使用前缀+
运算符,如下所示:+breakout
。然后您应该看到值6
在integerConstant
中,单个参数按值传递。这将复制实际参数。对副本所做的更改不会反映在实际参数中
如果您打算将
breakout
作为字符“6”,则应将其指定为普通撇号,如下所示:
breakout = '6';
字符“6”的ASCII值为48+6=54,因此除了一些旧的IBM大型机(使用EBCDIC而不是ASCII)外,上述赋值相当于
breakout = 54;
但是写
'6'
比写54
更清楚,请提供。因为6!='6'
@user657267,这有什么关系?OP正在使用cout
@BatCoder<代码>operator@BatCoder可能是因为值为6
的char
是不可打印字符(ACK
),而'6'
的值为54
。(考虑ASCII字符时)
breakout = '6';
breakout = 54;