问题描述
我有这段代码,我想如果某人年龄在30岁以上(一般),那么该人需要以良好的语言与老年人交谈,否则应该使用普通语言,但是如果我将此代码运行于30幅作品我得到“ u”,否则得到字母“ e”而不是“ je”,有人知道这是什么问题吗?
char bejaard = 'je';
if (jaar-gJaar > 30){
bejaard = 'u';
}
cout << "Er wordt nu een rekensom gegeven waarbij "<< bejaard <<" het antwoord moet schatten:"
<< endl << random1 << "x" << random2 << endl;
解决方法
'je'
是具有实现定义值的多字符文字:'e'
+ 2 8 * 'j'
是常见的。它是int
类型。重要的是,尽管某些编译器会警告您使用它们,但它在语法上不是无效的。
您最有可能溢出分配给它的char
,结果未定义或实现定义。
(从'e'
+ 2 8 * 'e'
中获得'j'
是合理的,因为模256为'e'
:8位char
实际上无处不在。
可能是因为您使用的是char类型,并且可能会溢出它。
,编译器应在此行向您发出警告。
RewriteCond %{QUERY_STRING} ^tx_\nameoftheextension\[action\]=showN&tx_\nameoftheextension\[n_id\]=1234$
RewriteRule .* example.com/detail/n/1234? [R=301,L]
单引号char bejaard = 'je';
用于声明单个字符,因为je是两个字符,因此它必须是一个以null终止的字符串,并用双引号'
来结束。
应该是:
"
由于长度超过一个字符。
const char* bejaard = "je";
将需要一致的输入,因此您还需要在if语句中更改分配:
bejaard