• ベストアンサー

voidは型? それとも修飾子? もし型なら基本…

・voidは「型」なのでしょうか? それとも「修飾子」? ■もし型なら ・「基本型(プリミティブ型)」? ・「参照型(オブジェクト型)」? ・あるいはそれ以外?

  • re97
  • お礼率80% (601/744)
  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

一応ラッパークラスのVoidは存在していますが、 そもそも型がない事の宣言がvoidだと思いますので、 単なる予約語と認識しています。

re97
質問者

お礼

回答ありがとうございました。 大変参考になりましたー

関連するQ&A

  • void*型の配列について

    void* a[2]; void* b = a; void* c[2] = (void *[2])b; error C2440: '型キャスト' : 'void *' から 'void *[2]' に変換できません。 配列型への変換はありませんが、参照またはポインタから配列への変換があります。 void*型にした a を再度void*型の配列に戻すにはどのように記述すればよいでしょうか? 環境はXP(SP3)のVS2008 MFC です。 宜しくお願いいたします。

  • voidについて

    voidはデータの定義の無い型であり、代入演算子で代入する場合に、データとして参照するvoid型のメモリの領域は、代入先として参照するvoid以外の型のメモリの領域の型に変換されるという事でしょうか。

  • 基本に戻って、型について考えてみる

    すいません。 サーブレットの所で質問なんですけれども、 戻り値の型が基本型やString型の場合だったら、 変数にどんな値が格納されているのかイメージしやすいんですけれども(例えばすぐ下の例の場合ですね)、戻り値の型がString型以外の参照型の場合には、戻り値が具体的にどのような値になっているのかイメージできなくて困っています。 String str1=br.readLine(); int num1=Integer.parseInt(str1); 例えばenumeration型。 一体この型はどんな型?っていう質問もへんなんですけれども、この型の変数がさしている値というのは具体的にいうとどう表現できるのでしょうか? 基本型やString型は本当に分かりやすいのですけれど。 あと他にもPrintWriter型だとか、Object型だとか、 なぜかイメージできないんですよね。 Enumeration paramNames = request.getParameterNames(); もしよろしければ教えてください。 お願いします。

    • ベストアンサー
    • Java
  • void*の型キャストについて質問です

    VisualStudio 2008 を使ってOpenCVを勉強中なのですが、 … IplImage *dst; … cvRelease(&dst); をすると、 error C2664: 'cvRelease' : 1 番目の引数を 'IplImage **__w64 ' から 'void **' に変換できません。(新しい機能 ; ヘルプを参照) と出ます。 確か、void*はどの型からでも明示型キャストは必要なかったと思うのですが、これはVisual Studio 2008 の仕様ですか?

  • void*型をキャストしたい。

    void*型をdoubleにキャストしたいのですが方法がわかりません。 何かインクルードなども必要でしょうか?

  • void*型のデータサイズ

    すみません教えていただけますか? void*で宣言した変数にmallocで確保して mallocで確保したデーターサイズがわからないクラスで void*型のサイズを取得したいのですが できますか? よろしくお願いします。

  • Voidポインタで受け取った変数の型を調べる方法

    あるライブラリの関数を利用しようとしたのですが、その関数の引数にVoidポインタがあり、どういう型のデータを格納したのかわかりません。このポインタのアドレスに格納されたデータの型を調べる関数なり方法なりというのはあるのでしょうか。 Voidポインタというのは型を問わずに受け取れるというのは利点ですが、受け取ったものがあらかじめなんだかわからない場合はどうするのでしょうか。よろしくお願いします。

  • void型のポインタで構造体の参照

    void型のポインタで構造体や共用体を参照することはできますか? void *p=&kou; struct KOU kou; (struct KOU*)kou.name="名前"; のようにして構造体を参照しようとしたのですが、「左側が構造体又は共用体ではありません。」と出ます。型キャストはコンパイラに型を知らせるだけのものなのでコンパイラが構造体の型を知ることができない、ということでしょうか?void型のポインタを使って構造体(共用体)を参照することはできますか?回答よろしくお願いします。

  • Java 「参照型の型変換」について

    Java初心者です。 入門書を読んでいたら、「参照型の型変換」を説明している項目に 以下の方法で行うと書いてありました。 ==前提=== Personは親クラス Employeeは小クラス Engineerは孫クラス ======== (1)Engineer型からPerson型へ暗黙の型変換する場合 Person per1 = new Engineer(); (2)Person型からEngineer型へキャストする場合 Engineer eng1 = (Engineer) per1; (3)Person型からEmployee型へキャストする場合 Employee emp1 = (Employee) per1; ======== これ、変換の方法は上記で分かったのですが、 そもそも、 "何のために参照型の型変換を行うのか" "型変換を行うと、それぞれのオブジェクトの機能がどのように変わるのか" そういった説明が一切書いておらず、その意味するところが理解出来ませんでした。 スーパークラス型からサブクラス型にキャストする場合、 サブクラス型からスーパークラス型に暗黙の型変換する場合、 それぞれのオブジェクトの性質がどう変化するのでしょうか? メソッドやフィールドに対しての挙動が何か変わるのでしょうか? 基本データ型の型変換は分かり易いんですけどね。。 参照型はどうにも。。 教えて下さい!

    • ベストアンサー
    • Java
  • structでvoid*型を利用して中身を動的に変化させる

    構造体の中にvoid*型のポインタを作り、そこの中身を替えることでデータを変えたいと思っています。 例 struct DATA{ void* p; } struct PROF_1{ char* name; int age; } struct PROF_2{ char* name; int age; int level; } void main(){ struct DATA data; struct PROF_1 p1={"HATOYAMA", 60}; struct PROF_2 p2={"OBAMA", 60, 1}; data.p = p1; printf("Name[%s] Age[%d]\n", (PROF_1)(data.p)->name, (PROF_1)(data.p)->age); data.p = p2; printf"Name[%s] Age[%d] Lv[%d]\n", (PROF_2)(data.p)->name, (PROF_2)(data.p)->age, (PROF_2)(data.p)->level); } このような感じで構造体の中にあるvoid*型のポインタの参照する場所を変えるだけで構造体の中身を変化させることが出来ないでしょうか?

専門家に質問してみよう