• ベストアンサー

変数とは?

変数の正体 アドレスに対して、人間がわかりやすいように名前を付けておく──それが変数の正体です。 変数とは「値の格納先(アドレス)に対して付けられた名札」といえます。 つまり yahooサイトで例えるとyahoo.co.jpが変数であり変数名であるということですかね?

noname#226032
noname#226032

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

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

>メモリのアドレスが箱というのはいまいちしっくりこないです そう言われると、そうですね、良く考えずにコピペしてしまいました。 値の格納先が「箱」。 >そこまで追求する必要が技術的にないのですね。 高級言語では そこまで細かく考える必要はありません。 ただし低級言語(アッセンブラ、C言語系(C、C++など))では「ポインター、値の格納先」を厳密に考える必要があります。

その他の回答 (9)

回答No.10

もしプログラミングに興味があるならJavaScriptならEditorさえあればプログラミング可能ですよ。 下記は当方が(Editorだけで)プログラミングしたJavaScriptのデモです(ブラウザは「IE、Firefox」を使用しています)。 CheckQuestion031 http://ashtarte.hotcom-web.com/utf8/smt.cgi?r+sara/&bid+00000020&tsn+00000039.

回答No.9

>変数名が「名札」。 >変数が「名札が付いた箱」(つまり「名札+箱」)。 >値の格納先のメモリー領域が「箱」。 なんか妙なことに こだわってな~と思っていましたが、論点自体がズレているんです。 実際のプログラミングにおいて「ポインター」、「値の格納先のメモリー領域」が重要なんです。 ほとんどポインターを意識しなくて良いjavaのような高級言語でも、関数で(帰り値ではなく)引数で その関数の処理結果をプリミティブ型(byte、short、int、long、char、float、double、boolean)を返したくても返せないので、プリミティブ型をオブジェクト化(ポインター変数、厳密には「参照型・変数」か?)する必要があります(javaの場合、このような時にポインターを意識します)。

回答No.8

>>さすがにインターネット上とは思っていません >「Perl、PHP」のサーバー・サイド言語なら、サーバー側のデータを読み書きできます。 >掲示板などもサーバー側のデータを読み書きしている例です。 >ちなみにCookieはWebベージから自分のPCにデータを読み書きできます(下記参照)。 >Cookie 【 HTTP Cookie 】 クッキー >http://e-words.jp/w/Cookie.html 例えば下記の「SMT Version 8.012(+A) Release LX」掲示板は当方がPerlで作った掲示板です。 記事(サーバー側のデータ)を「書き込み、観覧(読み出し)、削除」が可能です、HandleNameなどをCookieに保存できます。 "沙羅" http://ashtarte.hotcom-web.com/utf8/smt.cgi?r+sara/

noname#226032
質問者

お礼

>>> そう言われると、そうですね、良く考えずにコピペしてしまいました。 値の格納先が「箱」。 うーん。アドレスが箱なんではなくアドレスが示す先にある値が箱なんですか? なんだかよくわかりません。

回答No.7

>>メモリのアドレスが箱というのはいまいちしっくりこないです >そう言われると、そうですね、良く考えずにコピペしてしまいました。 >値の格納先が「箱」 もう少し厳密に言うと、値の格納先のメモリー領域が「箱」 >さすがにインターネット上とは思っていません 「Perl、PHP」のサーバー・サイド言語なら、サーバー側のデータを読み書きできます。 掲示板などもサーバー側のデータを読み書きしている例です。 ちなみにCookieはWebベージから自分のPCにデータを読み書きできます(下記参照)。 Cookie 【 HTTP Cookie 】 クッキー http://e-words.jp/w/Cookie.html

回答No.5

アドレス=URL と 誤認して 混乱しているようです。 ここでいうアドレスとは メモリー上の場所の事で インターネット上の場所のことではありません。

noname#226032
質問者

お礼

>変数とは「値の格納先(アドレス)に対して付けられた名札」といえます。 と記載があったので、箱は比喩と考えたのですが、実態まで考えなくても良いということですね。 メモリのアドレスが箱というのはいまいちしっくりこないですが、 そこまで追求する必要が技術的にないのですね。 さすがにインターネット上とは思っていません

回答No.4

>変数とは「値の格納先(アドレス)に対して付けられた名札」といえます。 > >と記載があるのですが、教科書は名札自体が変数といっている様に思えるのですが、 >アドレスの入った箱側が変数でその箱についた名札が変数名ということなんですか? それはチョット違いますね。 変数名が「名札」。 変数が「名札が付いた箱」(つまり「名札+箱」)。 値の格納先(アドレス)が「箱」。 と言う感じでしょうか、普通 そこまで細かく考えないでも良いと思います。

noname#226032
質問者

お礼

>変数とは「値の格納先(アドレス)に対して付けられた名札」といえます。 と記載があったので、箱は比喩と考えたのですが、実態まで考えなくても良いということですね。 メモリのアドレスが箱というのはいまいちしっくりこないですが、 そこまで追求する必要が技術的にないのですね。

回答No.3

>名札自体を変数というのでしょうか? 名札自体は変数名、名札の付いた箱が変数と言う感じでしょう。 >パケットで例えるとヘッダ自体と同じでしょうか? パケットのヘッダは どのサーバーを通ったかと言うログも含まれているので名札とは違うような気がします。 >ヘッダ、名札、変数に名前を付けてやろうと名前を付けると、 >それが変数名になるという方が正しいでしょうか? ああ、「yahoo.co.jp」が変数名で、ページ自体のデータが変数と言う認識でしたか。 変数の利用価値は"演算"です、"演算"できないモノは変数と考えなくて良いと思います。 例えば、「yahoo.co.jp」のページの中に変数hogeが有って、変数hogeの値によってページの表示を変えるとか、そう言う使い方です。

noname#226032
質問者

お礼

変数とは「値の格納先(アドレス)に対して付けられた名札」といえます。 と記載があるのですが、教科書は名札自体が変数といっている様に思えるのですが、 アドレスの入った箱側が変数でその箱についた名札が変数名ということなんですか?

回答No.2

>yahooサイトで例えるとyahoo.co.jpが変数であり変数名であるということですかね? _backyarDさんの仰るとおり「ニックネーム」ですね、サイトのアドレスの実態は「IPアドレス」です。 例えば「yahoo.co.jp」の実態は「182.22.71.250」です、試しにブラウザのアドレス・バーに「182.22.71.250」を入力し[Enter]キーを押すと「Yahoo! JAPAN」が表示されます。 でも「182.22.71.250」だと人間にとっては意味不明な数字の羅列でしかありませんが、「yahoo.co.jp」と言う「ニックネーム」を付ける事で「Yahoo! JAPAN」のサイトだと類推できます。 ただし人間の認識能力は いい加減なので、類似のアドレスの詐欺サイトが作られると、沢山の人が引っかかってしまうと言うデメリットもありますが…。 >アドレスに対して、人間がわかりやすいように名前を付けておく──それが変数の正体です。 >変数とは「値の格納先(アドレス)に対して付けられた名札」といえます。 それで基本的に正しいですが、JavaScriptの場合は「可変の型」の変数です。 ザックリと説明するとプログラミング言語の変数には「固定の型」と「可変の型」があります。 JavaScriptには基本型として「数値、文字列、論理型」があります(「null、undefind」も特殊な基本型?)、その他には「オブジェクト型」(配列や関数)があります(Javaでは関数は「オブジェクト」ではないので、関数まで「オブジェクト型」なのはチョット特殊な気がします)。 JavaScriptの場合は「可変の型」の変数ですので、例えば「hoge」と言う変数に どんな型でも代入できます(Javaの変数は「固定の型」なので、定義された型しか代入できません)。 ちょっと良い例が思いつかないのですが、ゴミ箱を例にすると、型として「燃せるゴミ型、プラスチック・ゴミ型、リサイクル・ゴミ型」があるとして、とあるマンションにAさんは「固定の型」ゴミ箱だとすると、ゴミ箱は「燃せるゴミ型、プラスチック・ゴミ型、リサイクル・ゴミ型」と いつも固定で決まったモノしか捨てられません。 対して別のマンションにBさんは「可変の型」ゴミ箱だとすると、自分で自由に「燃せるゴミ型、プラスチック・ゴミ型、リサイクル・ゴミ型」の内の どれかを決定する事ができます。 下記にはjavascriptの変数について詳しく説明されています。 javascriptでの変数と型、値 http://qiita.com/lrf141/items/ff1fa4741e4cd612b128

noname#226032
質問者

お礼

変数とは「値の格納先(アドレス)に対して付けられた名札」といえます。 つまり変数とは値の入った箱というのは厳密には間違っていて。 参照先のアドレス情報に名前を付けたものということなのですね。 その名前が変数名ということでしょうが、 すると変数は名前を付けたデータ自信を指すのですかね、 ややっこしい。 例えば yahoo.co.jpというアドレスの変数があって、yahoo.co.jp先に変数の中に入る値があった場合、 この変数に始めは名前がついていないので、 yahooの情報先の箱という名前を付けよう(変数名) ということですかね。

noname#226032
質問者

補足

変数とは「値の格納先(アドレス)に対して付けられた名札」といえます。 つまり変数とは値の入った箱というのは厳密には間違っていて。 参照先のアドレス情報に名前を付けたものということなのですね。 その名前が変数名ということでしょうが、 すると変数は名前を付けたデータ自信を指すのですかね、 ややっこしい。 例えば yahoo.co.jpというアドレスの変数があって、yahoo.co.jp先に変数の中に入る値があった場合、 この変数に始めは名前がついていないので、 yahooの情報先の箱という名前を付けよう(変数名) ということですかね。 >>> すると変数は名前を付けたデータ自信を指すのですかね、 もしかして上記は間違っていて、 yahoo.co.jpというアドレスの情報に名札を付ける作業が必須で、 裏側でプログラムが自動的にyahoo.co.jpというアドレスの情報に名札をつけ、その名札だけ、名札自体を変数というのでしょうか? つまりパケットで例えるとヘッダ自体と同じでしょうか? ヘッダを変数というということで、 そしてそのヘッダ、名札、変数に始めは名前がついていないので、どの変数が区別がつかない。そのため このヘッダ、名札、変数に名前を付けてやろうと名前を付けると、 それが変数名になるという方が正しいでしょうか?

  • _backyarD
  • ベストアンサー率34% (199/580)
回答No.1

コンピューターとコンピューター用のプログラムが扱う情報としては「~名札」まではあってます。で、「名札」とうい言葉を使うなら、変数は「名札のついた、情報の入れ物」と見ることも出来ます。 その名の通り「変」、変わる可能性があり、変わることが前提とされることが変数である条件です。おそらく、yahoo.co.jpが「実際にはIPアドレスやサーバー自体の居場所を言い換えたもの」ということから変数出ないかと思われているのでは内科と推測しますが、これはあくまで「別名」であり、変数ではありません。言ってみれば「ニックネーム」のようなもの。 たとえば「いつも見るWebページのアドレス」という情報であればこれは変数と言って良いかもしれません。人によって変わりますし、同じ人でもある程度の時期で内容が変わるからです。

noname#226032
質問者

お礼

変数とは「値の格納先(アドレス)に対して付けられた名札」といえます。 つまり変数とは値の入った箱というのは厳密には間違っていて。 参照先のアドレス情報に名前を付けたものということなのですね。 その名前が変数名ということでしょうが、 すると変数は名前を付けたデータ自信を指すのですかね、 ややっこしい。 例えば yahoo.co.jpというアドレスの変数があって、yahoo.co.jp先に変数の中に入る値があった場合、 この変数に始めは名前がついていないので、 yahooの情報先の箱という名前を付けよう(変数名) ということですかね。 >>> すると変数は名前を付けたデータ自信を指すのですかね、 もしかして上記は間違っていて、 yahoo.co.jpというアドレスの情報に名札を付ける作業が必須で、 裏側でプログラムが自動的にyahoo.co.jpというアドレスの情報に名札をつけ、その名札だけ、名札自体を変数というのでしょうか? つまりパケットで例えるとヘッダ自体と同じでしょうか? ヘッダを変数というということで、 そしてそのヘッダ、名札、変数に始めは名前がついていないので、どの変数が区別がつかない。そのため このヘッダ、名札、変数に名前を付けてやろうと名前を付けると、 それが変数名になるという方が正しいでしょうか?

関連するQ&A

  • 変数

    ポインタ変数なんですが、 int *p;と宣言した時 自分自身のアドレスを持ってますか?(プログラムが終わるまで?) ポインタ変数は、他の変数アドレスを格納しますよね。 また数値の値も格納しますよね。 これは、ポインタ変数宣言 時の自分のアドレスに、 他の変数のアドレス、数値の値、 と二つを格納しているのですか? ポインタ自身のアドレス出力は(int *pの時) printf("%p",&p); 他の変数のアドレス出力は(p=&の時) printf("%p",p); であってますか? 普通の変数は、自身のアドレス、数値の値、だけ、 ポインタ変数はさらに、他の変数の値を格納していますか? 教えてください。

  • perl スカラー変数の値をくっつける ストリング

    スカラー変数$valueの値が、 タイトル,名前,メールアドレス,コメント というストリングだったとします。 そのストリングの先頭に、 スカラー変数$cntの値(例えば数値の1)を挿入して、以下のようにしたいと思います。 1,タイトル,名前,メールアドレス,コメント この$valueと$cntをあわせたストリングを $allという変数に格納する場合、 $all=$cnt + "," + $value と書くのでいいのでしょうか? ちょっとActionScriptとごっちゃになっていて、 perlにおけるくっつけ方がわからなくなってしまっています。 お助けください。

    • ベストアンサー
    • CGI
  • 変数が渡らない

    選択するための3つのボタンを作成し、それぞれ変数ansに値を格納しました。下記がそのActionScriptの例です。 ------------------------------- on(release){ ans=1; _root.nextFrame(); } ------------------------------- ボタンを押した後、別のレイヤーのフレームからMCを読み込みます。 しかし、ボタン内で格納した変数が読み込まれずundefined(未定義)となってしまいます。if文で分岐したいのですが出来ずに困っています。 ボタンをクリックすることで変数に格納した値を、ムービークリップのイベント内で読み込むことは可能でしょうか?

    • ベストアンサー
    • Flash
  • PHP staticな変数

    phpでstaticな変数について教えてください。 ユーザの情報をstaticな変数に格納した際に、誰からでも参照できてしまうのでしょうか? 例えば今ログイン情報を格納するstatic変数があり、ログイン情報を取得してそのstatic変数に値を格納するstaticなメソッドがあるとします。このメソッドは、その変数にまだ値がない場合に、ログイン情報取得してそのあとその変数へ格納し、その変数にすでに値があった場合に、その変数の中身を返す仕様だとします。最初のユーザAがアクセスしてきてその変数にAの情報を格納します。ほぼどうじにユーザBがアクセスしてきた場合は、そのメソッドを呼んだ際に直前に格納されたAの情報が取れてしまうのでしょうか?それともそのstaticな変数にはまだ何もないのでしょうか?よく分かりません。私は間違って理解してしまってるのでしょうか?宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHPでFORMから来る変数名を変数にするには

    PHPでFORMから来る変数名を変数にするにはどうしたらよろしいでしょうか? 可変変数など調べたのですが、値を変数にすることは出来ても変数名を変数にする事は難しいようです。 <form action="reg.php"> <input type = "text" name = "comment"> <input type = "submit"> </form> このform内のnameが動的に変わるプログラムで,reg.phpにおいて名前(今ならcomment)を変数に格納したいと思っています。 reg.php 本来なら $comment = _REQUEST['comment']; とすると思うのですが、commentが動的に変動する場合、_REQUEST内をどう書き換えれば良いかが分からず困っています $dynamic_name = _REQUEST['ここをどう書けばよいでしょうか'] このことを考えてから今はform内ですが、formでなくてもどうやって書いてよいか分からず疑問に思いました 例えば $test = 'abc'; としたとき $test_name にtestという文字列を入れたい場合(つまりabcの変数名)どうやって入れたらよいのでしょうか?(もちろんtestと言う名前は動的に変わります) 詳しい方いらっしゃいましたらご回答いただければと思います。 良いアドバイスございましたら教えてください よろしくお願いします

    • 締切済み
    • PHP
  • String型の変数を使った問題

    すごく簡単なプログラムのはずで、初歩的な質問で申し訳ありませんが、教えていただければと思います。 問題: 以下の場合の処理を行うプログラムを作成せよ。 (1)String型の変数を作成し、苗字を格納する。(値は直接書き込む) (2)String型の変数を作成し、名前を格納する。(値は直接書き込む) (3)(1)で作成した苗字を持つ変数と、(2)で作成した名前を持つ変数を結合して出力。 (4)「苗字は'((1)で作成した変数の値)'です。名前は'((2)で作成した変数の値)'です。」と出力。 出力結果: C:\>java Name いわたてつお 苗字は'いわた'です。名前は'てつお'です。 C:\> 上記のプログラムを作成しようとしたのですが・・・ import java.io.*; class Name { public static void main(String[] args)throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); String name1 = str1; String str2 = br.readLine(); String name2 = str2; System.out.println(name1 + name2); System.out.println("苗字は\'" + name1 + "\'です。名前は\'" + name2 + "\'です。"); } } ↑これではいくら変数を2つ作成しても、書き込んだ文字が全て 苗字の変数に格納されてしまってちゃんと出力出来ないという事は 分かるのですが、どうやったらちゃんと苗字と名前に分かれて 出力されるのか分からないので、教えてください。 なんとなく文法的にも間違っている気が・・・ ホント初歩的な質問ですみません!

    • ベストアンサー
    • Java
  • XML文書にかいてある値を変数に格納したい。

    vb2005にてxml文書にアクセスして 値を変数に格納したいと思っています。 どこか参考になるサイトはないでしょうか? 教えてください。

  • 変数名に変数を使う

    Flash8を使用し、ActionScript2で書いています。 変数名に、他の変数の値を参照したいと考えています。 http://www.flash-jp.com/modules/newbb/viewtopic.php?topic_id=6679&forum=6 を見て、同じようにやってみました。 すると、 animal = "cat"; catlLegs = 4; とした場合、animalの値であるcatを参照し animalLegs = 4; とする、というような単純なものはうまくいきました。 しかし、SharedObjectのdataプロパティで、属性名を変数にしようとすると うまくいきません。 dataNameという変数に、soというSharedObjectのneko属性の値を代入する場合、 so:SharedObject = SharedObject.getLocal("hoge"); animal = "neko"; dataName = _root["so.data."+animal]; としたのですが、 trace(dataName); の値はundefinedになってしまいます。 なお、 trace(_root.so.data.neko); では正しく値が表示されます。 属性名前には他の変数の値を参照できないのでしょうか。 それともSharedObjectではできないのでしょうか。 なんとか実現する方法をおしえていただければと思います。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • FLASH8 外部テキストファイルの読み込みについて

    外部テキストファイルの読み込みを参考資料などを見ていると、下記のような形式で読み込みを行っているのですが。 a.txt --------------------- 任意の変数名1=値 任意の変数名2=値 任意の変数名3=値 --------------------- 下記のようなテキストファイルを読み込むことは可能でしょうか? a.txt --------------------- 2<>名前<>メールアドレス<>画像.jpg<> 1<>名前<>メールアドレス<>画像.jpg<> --------------------- ※最初の1文字目は連番の数字です 前文の方の読み込みは成功しておりますが、下の内容については、どうすればよいかわかりません・・・ 読み込みができるのであれば、各行はsplitで配列に格納したいと思っています。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • 変数を取り出しているのに、なぜdefine関数は使

    変数を取り出しているのに、なぜdefine関数は使わないの? 変数に値を格納して取り出すときは、define関数を使うと覚えたのですが 牡蠣コードでも変数に値を入れて取り出せます。 <?php $number = 12345; echo $number; ?> define関数はどういう時に使うのでしょうか?文字列の場合のみですか?

    • ベストアンサー
    • PHP