2016-04-13 7 views
-1

値へのポインタを1行に作成したいと思います。私はこれと同じ機能が必要です:値へのポインタを1行に作成

int i = MY_VALUE 
int * j = &i; 

しかし、私はこれを1行で行い、2つの変数を使いたくありません。

int * i = new int (MY_VALUE); 

しかし、私は動的メモリを使いたくありません。私は静的メモリを使いたい。

変数に静的に1つの変数にポインタを割り当てることはできますか?

+4

は本当にC++今日の急増や、ランダムな質問があり、またはそれは私だけでしょうか? – SergeyA

+1

CまたはC++に関するこの質問はありますか? C [here](http://stackoverflow.com/questions/24805673/declare-and-initialize-pointer-concisely-i-e-pointer-to-int)の複製があります。 – Quentin

+2

2つの変数を使用せずに1行にする必要がある理由を説明できますか?それは、私たちが受け入れられる解決策を思いつくのに役立ちます... – Brian

答えて

2

いいえ、あなたは値からのポインタを持つことができない、あなただけのオブジェクト(左辺値)に変数かポインタへのポインタを持つことができます。単項&演算子のオペランドは機能指示、 []の結果のいずれかでなければならない&オペレータ

の使用のためC11チャプタ§6.5.3.2を引用し、Cのprespectiveから、詳しく説明し

またはunary *演算子、またはビットフィールドではないオブジェクトを指定する左辺値で、レジスタ記憶クラス指定子で宣言されていない です。

ので、

int * p = &10; 

の線に沿って何かが純粋に無効です。

+0

C++ 14は実際に言い回しを改訂しています。しかし、あなたはまだ価値へのポインタを取ることはできません。 – SergeyA

+0

@ SergeyAあなたが言及した最後の部分は、私が強調しようとした部分です。 :) –

2

あなたがしなければならない場合は...

int i = 5, *p = &i; 
+0

ちょうど、それは1つの変数ではありませんが、とにかくです。:) –

+1

@SouravGhoshはい私はちょうど質問を再読しました...そしてそれに答えることに興味を失った。 :/ –

関連する問題