問題タブ [lvalue]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 非コスト参照を期待する関数に右辺値/一時オブジェクトを渡す方法はありますか?
c++ では、右辺値または一時オブジェクトのみが const 参照にバインドできることを理解しています。(またはそれに近いもの...)
たとえば、関数があり、次のようdoStuff(SomeValue & input)
に SomeValue getNiceValue()
定義されているとします。
だから、3つの質問:
doStuff()
orの署名を自由に変更できないためgetNiceValue()
、渡したいものには常に何らかの「名前」を使用する必要があるということdoStuff
ですか?仮説として、関数のシグネチャを変更できた場合、この種の共通パターンはありますか?
新しい C++11 標準は、物事をまったく変更しますか? C++11 でより良い方法はありますか?
ありがとうございました
octave - オクターブはstrsplitの戻り値を個別の変数にベクトル化します
一度に1行ずつ解析するレコードのリストを含むファイルがあります。各レコードは改行で区切られ、各値はスペースで区切られます。これは単純化された例ですが、実際のデータと同様の構造になっています。
最初の値は名前、次に好きな色、次に好きな食べ物です。これが処理ループにあり、値ごとに変数を設定したいとします。最初の行では、私の値は次のようになります。
私はその行を読んで、
strsplitは良い考えのように思えますが、文字列の行列ではなくセル配列を出力し、最終的には
こんなもの欲しい
これは私に与えますerror: invalid lvalue function called in expression
配列は左辺値として使用できるので、試してみました
それは私が望んでいることではありません。
c - 右辺値の定義は値を割り当てることができないオブジェクトですが、なぜリテラルは左辺値なのですか?
そのため、今後のトピックを事前に確認しており、左辺値と右辺値に出くわしましたが、定義が混乱しています。なぜリテラルは左辺値なのですか?
「右辺値は、メモリ内のあるアドレスに格納されているデータ値を指します。右辺値は、値を割り当てることができない式です」
「左辺値の元の定義は、「割り当ての左側に表示できるオブジェクト」と呼ばれていました。ただし、const オブジェクトは左辺値ですが、割り当ての左側に表示することはできません。」
c - 無効な左辺値、関数へのポインターも、これの用途は何ですか? 関数を呼び出す方がはるかに簡単です
だから私は関数へのポインタを練習していて、この簡単なプログラムを作ってみました.これはそのスニペットです. アドレスの割り当てに関しては、「無効な左辺値」というエラーがまだ表示されます。たとえば、 funcptr = &addnum です。また、これが何の役に立つのだろうかと思わずにはいられません。関数を呼び出す方がはるかに簡単ではありませんか? それとも私は何かを誤解していますか
c - int *x[] と int (*x)[] の違いは?
私の先生は私に違いを見つけるように頼んだ.誰か私を助けることができますか? 実際には、最初の部分はポインターの配列ですが、2番目の部分が何を意味するかはわかっています。このコードを試したので、両方とも同じではありません。
「左辺値が必要です」というエラーが発生しました
c - ポインタ演算で計算されたメモリアドレスに値を割り当てる方法は?
列挙型で指定された任意のタイプのデータを含むことができる完全に汎用的なリンクリストを作成する必要があります...
リストのノードの構造は次のとおりです。
最初のフィールドは、格納されている情報のタイプを含むsizeof(nodeType)バイトです。次のフィールドには、情報変数のアドレスを含むアドレスがあります。次のフィールドには、次のノードのアドレスがあります。これは、単純なノードまたはさらに別のリンクリストにすることができます。
基本的に、私は次のようなnodeType列挙型を持っています:
次のようにノードポインタにメモリを割り当てました。
最初のsizeof(nodeType)バイトには、格納されている情報のタイプが含まれています。次の式で値STRINGを割り当てました。
ここで、次のsizeof(char *)バイトにchar*ポインターのアドレスを格納する必要があります。(すべてのポインターはマシン上で同じサイズですか?(はい、私に一致します))。したがって、次のように値を割り当てます。
しかし、代入演算子のLHSは左辺値ではないため、GCCはエラーにフラグを立てます。リストの作成に進むには、そのアドレスに値を割り当てる必要があります。構造体を使用する以外に、cでそれを行うエレガントな方法はありますか?
c - インクリメントオペランドエラーとして左辺値が必要なのはなぜですか?
インクリメントオペランドとして左辺値が必要な理由a=b +(++ c ++);のエラー ?
'b +(c + 1)'を'a'に割り当て、'C'を同時に2インクリメントしたかっただけです。
私は初心者ですが、実際には「LVALUE ERROR」とは何かを明確にしたいと思っていましたか?
c++ - const 左辺値参照のアドレスを取得することは合法ですか?
このコードでa
は、右辺値にバインドします。そのアドレスを取ることは合法ですか?(そして、法的には、コードの形式が正しくありませんか?未定義の動作を引き起こしていますか?)
c++ - どのような種類の左辺値のうち、アドレスを取得できないのですか?
この会議で、Scott Meyersは、「左辺値は一般に、アドレスを取ることができる式です」と言うことから始めます。私は一般的にその言葉を強調しています:あなたがアドレスを取ることができない左辺値は何ですか?(存在する場合)。
編集:あなたの答えをコードスニペットに提供してください、それは物事をより明確にします。