• ベストアンサー

変数の容量ついて質問

変数にも容量ってありますよね? 例えば、char型で宣言された変数は16ビットの容量があって、byte型で宣言された変数は8ビットの容量があるということですか? このように、宣言されるデータ型によって、変数の容量は違いますか? ちなみに、私はプログラミングまったくの初心者なので、噛み砕いた解説いただければありがたいです。

  • Java
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
  • Kensyusei
  • ベストアンサー率30% (25/81)
回答No.2

wantantonさんのおっしゃる通り、宣言されるデータ型によって変数の容量は違います。 Javaの基本データ型の容量については参考URLをご覧ください。 ただ、Javaのchar型の容量については特殊なので、以下の質問に回答致しました。 http://okwave.jp/qa/q6425975.html

参考URL:
http://www.atmarkit.co.jp/fjava/rensai2/javaent02/javaent02.html

その他の回答 (1)

  • yui-magic
  • ベストアンサー率62% (20/32)
回答No.1

結論から言うと 宣言される型によって、変数の容量は違います。 変数の型によって決まった数だけ箱が割り当てられます。 この箱の数が変数の容量ということになります。

関連するQ&A

  • javaについて、char型に関する質問

    私プログラミングまったくの初心者であることを最初に断っておきます。 よって、なるべく噛み砕いた解説をお願いします。 javaの参考書で、「char型は文字1つ分の情報にあたります」 と書いてありました。 これはどういうことでしょうか? char型で宣言された変数は文字1つ分の情報しか入れられないということでしょうか?

    • ベストアンサー
    • Java
  • 自動変換について質問

    僕はプログラミング初心者ですので、それを念頭に置いた上でわかりやすく且つ本質的なご教示希望します。よろしくお願いします^^ 参考書に「byte、shortはビット幅がcharより狭いのでcharからこれらの型には自動変換できない」と書いてありました。byteはcharよりビット幅が狭いから納得できるのですが、shortとcharのビット幅は同じ16です。なんで自動変換できないんですか?ビット幅が同じなのに、、

    • ベストアンサー
    • Java
  • VB6で0か1を扱う時の変数

    VB6で0か1を扱う時の変数はByte型で宣言すればよいでしょうか?

  • 変数について

    教えてください。 色々なプログラミング教科書で変数について、データを入れる箱のようなものと書かれていますが初心者にとってはそれだけの説明ではいまいちイメージできません。 どういうものを変数に代入したりして定義する必要があるのかもう少し小学生にも解るような例えはないでしょうか? 教えてください。

    • 締切済み
    • CGI
  • 動的な変数名のつけ方について

    ■環境 OS:XP 言語:C++ コンパイラ:Visual C++ 2008 char*やstd::string等で格納された文字列を使用して 変数を宣言することは可能でしょうか。 用途として、テキストファイル等から文字列を取得し その文字列を変数名としてプログラミング内で使用するという方法を考えています。 よろしくお願い致します。

  • MicroC コンパイラ 変数宣言

    MicroC コンパイラ 変数宣言について質問です BYTE tmp1; WORD tmp2; なる定義があったとして 変数型範囲はどの範囲になるのでしょう 下記の定義は見つかったのですが 上記は分かりません 変数型 バイト数 範囲 (unsigned) char 1 0 .. 255 signed char 1 - 128 .. 127 (signed) short (int) 1 - 128 .. 127 unsigned short (int) 1 0 .. 255 (signed) int 2 -32768 .. 32767 unsigned (int) 2 0 .. 65535 (signed) long (int) 4 -2147483648 .. 2147483647 unsigned long (int) 4 0 .. 4294967295 float 4 ±1.17549435082 * 10-38 .. ±6.80564774407 * 1038 double 4 ±1.17549435082 * 10-38 .. ±6.80564774407 * 1038 long double 4 ±1.17549435082 * 10-38 .. ±6.80564774407 * 1038

  • グローバル変数のサイズ

    C言語でWindowsのプログラムを作成しようとしています。(初心者) Windows のプログラムでは、グローバル変数は最大どれくらい確保できるものなのでしょうか? また、グローバル変数を多く取りすぎると、OSへ影響が出るのでしょうか? 下記の変数を確保使用としています。 char Data[1000][4096]; よろしくお願いいたします。

  • 配列変数のアドレス

    C言語で、配列を宣言した場合、 char a[] = "hoge"; 変数aは初期化された配列の先頭番地を指しているのですが、この時、 変数aの中身も変数aのアドレス(&a)ともに上記の配列の先頭番地になっているようなのですが、 これによって、配列の変数aは読み取り専用で、書き換えられないということにしていると思っていいのでしょうか? ちなみに、 char *p = "fuga"; とした場合は、pと&pのアドレスは異なって、pの中身は書き換えられます。

  • 自動変数の有効範囲について

    自動変数の有効範囲について 以下のプログラムではchar *strの有効範囲はsub()内だけだと思ったのですが、意図せず main内でputs()した場合に"abc"が表示されてしまいます。 これはたまたまメモリ上にデータが残っていただけなのでしょうか? 因みにchar str[100]と宣言すると、意図したとおりコンパイルでもwarnningがでてゴミが出力されます。 また一般的にはchar *を返したい場合にはどうしたらいいのでしょうか? mallocして返すのでしょうか? 以上よろしくお願いします -------------------------------------- #include <stdio.h> char *sub(); int main() { char *q; q = sub(); printf("%s\n",q); } char *sub() { char *str = "abc"; return str; }

  • プログラミング言語の変数と数学の変数

    自分自身の中でくだらない議論があります。 それは、 「プログラミング言語の変数と数学の変数は同じか否か?」 ということです。 もちろん、 プログラミング言語の変数は、数値以外も扱える、データ型がある、 イコール(=)は左辺に代入するという意味である、 などの点が数学とは異なりますよね。 でもそれらの点を除くと同じと言えるものなのでしょうか? ちなみにわたしの考えとしては、 「数学でいうところの変数というより、代数と同じである」という結論ですが、 みなさんはどう思われるでしょうか? (どうでもいいことですか?こんなこと(^^;)

専門家に質問してみよう