2017-09-21 16 views
1
結婚

add =(char *)wed .. Cでこれはどういう意味ですか?

scanf("%x",&wed); 

としてscanf関数から読み取ると、追加されたが

(char *) add; 
add = (char *) wed; 

これはすなわち(char *) add ??

+0

これは、wed to charポインタ型の型キャストです。 scanf形式指定子から、wedが16進数であることは明らかです。 – LethalProgrammer

+2

多分あなたは '(char *)add;の代わりに' char * add; 'を意味していたでしょうか? –

+1

意味はありません。あなたのコードは無意味であり、文脈はありません。この質問に答えるには、すべての変数宣言を含める必要があります。 – Lundin

答えて

0

はあなたが別の型に1つの変数の型を変更すること何を意味しているように初期化されます。この場合、あなたのcharポインタへの変更。それは鋳造と呼ばれています。また、charポインタはアドレスa charを格納します。だからあなたの場合には結婚

add=(char *) wed; 

は現在、char型のポインタで、charのアドレスを格納し、追加し、そのアドレスここ

http://www.improgrammer.net/type-casting-c-language/

0

に等しく、追加(のchar *)のあるタイプつまり、文字のアドレスを格納できることを意味します。 は、アドレス文字が格納されている整数値を格納できることを意味します。今

、あなたが文字ポインタに(結婚)この整数に変換されることを意味し、それは今あなたがそれを割り当てられたアドレスの文字を指します意味

add=(char*) wed 

4

この:

add=(char*) wed 

がをキャストと呼ばれています。このコード行は、wedchar*に一時的に変換します。

は今、この:

(char *) add; 

は一時的にchar *からaddをcovnerting、またキャストである、そしてそれは、結果を破棄します。

+0

もちろん、 '()'を使うときに違いはありますが、 '*'よりも厳密にバインドしますが、charポインタとcharへのポインタは同じものです。 – 0decimal0

+0

私は質問を理解すると、親は@ 0decimal0の型キャストに使用されます。 – gsamaras

関連する問題