2012-04-08 21 views
6

最近私はこのビデオをProgramming Paradigmsとprofに渡しました。アスタリスク、スター、アンパサンドなどの用語を使用していました。アスタリスクフロートスター、IC++:アスタリスク、アンパサンド、スター?

のアンパサンドに等しい

フロート "F":

int i = 37; 
float f = *(float*)&i; 

そして、どのようにそれを書いている間、彼は2行目を表明:

これは彼がそれらの演算子を使用する方法何でした

アスタリスクとアンパサンドの意味を理解していますが、ここでスターを使用する意義は何ですか?アスタリスクと同義ですか?

+5

括弧を忘れてしまった。 –

+5

...とセミコロン。 – Blastfurnace

+0

あなたは何かを言うならば、それが何をするかを単に言わないのはなぜだろうか... ... – Bart

答えて

8

floatの後に*タイプを形成するために使用されます。非常にしばしば単語の中のポインタ型を指すとき、人々は "ポインタ"よりも型の後に "星"を言うでしょう。 "mallocは空の星を返す"。私は誰もタイプを参照するために "アスタリスク"を使用して聞いたことがない。

先頭の*を使用してポインタの参照を解除し、それが指す値にアクセスします(次のキャストによりfloatと解釈されます)。繰り返しますが、私自身の経験では、誰も "アスタリスク"をここで使用するとは聞いたことがありません。人々は、実行されている操作を説明するために「参照解除」と言う傾向があります。

私はあまりそれを読んでいないでしょう。ここでは2つの異なるコンテキストがありますが、C++の観点から何を意味するのかを理解している限り、それは問題ありません。

+0

ありがとう!これは効果的に、アスタリスクの代わりに「星」と言った理由に効果的です。 – witherspoon

0

プレゼンターは、コードを書いている間、ぎこちない沈黙を避けたいと思っています。私が知る限り、この文脈でアスタリスクと星の間に違いはありません。

2
float f = *(float*)&i; 

この場合、左*と右*は異なるsematicsを持っています。左*は参照によって値を取得することを意味します。 Right *は参照型を宣言します。

+0

は "異なるセマンティクスを持っています"発音に引き継がれません - それはまだ同じシンボルです。 – SigTerm

+0

はい、もちろん) –

1

アスタリスクと同義ですか?

はい。 Shift + 8 on MY Windowsキーボード。あなたの例は、なぜシンボルでC++プログラムの大声を読むべきではないのかを示しています。 C++の "等しい"は "=="です。 "="は割り当てです。彼は括弧とセミコロンについて忘れてしまった。この時点で(コードの1行に4つの間違いがある)、彼は黙って気にしたことを書いていた可能性があります。

男はこの部分を読めば、それははるかに良いされているでしょう:

float f = *(float*)&i; 

多少のように:

「私へのポインタを取り、C-スタイルが浮かぶようにポインタにそれをキャスト、逆参照浮動変数f "に値を代入します。 「スター/アスタリスク」がぎこちなくなることははるかに理にかなっています。

P.S.あなたが本当にタングステイを愛しているなら、ブースト、iostreams、オペレータ< <を使用するコード、キャスト、ビット単位の操作、およびクラスとメソッドを区別する "ラクダケース"を声を出して読み上げることができます。そのような練習はもちろん、あなたのプログラミングのスキルを向上させません...

+2

SHift + 8は私のキーボード上では "("(窓も同じです))世界中のすべてのキーボードが同じレイアウトを持つとは限りません –

+3

-1:OPはそれが同じシンボルであることを知っています私はそれが非常に失礼だと思う。質問は単に、*が使われた2つの異なる状況に基づいて2つの異なる用語の使用に有意性があるかどうかを尋ねることである。 – Troubadour

+0

@トルバドゥール: "それは非常に失礼だと思う"もしあなたがそれが失礼だと思うのであれば、それはあなたが結論に飛びついているからです。」2つの異なる用語の使用に対する意義「そこにはありません私が知っている限り、「星」と「アスタリスク」はよく知られているC++の専門用語の一部ではなく、一般に「derefernece」や「キャスト」を指していません。より良い用語 - "derefernece"と "cast"。 – SigTerm

関連する問題