为什么我得到字母“ e”而不是我给它的值?

问题描述

我有这段代码,我想如果某人年龄在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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...