掲示板ランキング  かまぼこ(さつまあげ)  かまぼこ(はんぺん)  かまぼこ(笹かまぼこ)


掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板1

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.6452

定数と変数を・・・。
投稿者---匿名(2006/09/11 15:42:21)


定数と変数が、イマイチ理解できないので、何かいい勉強方法があれば教えてください。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:定数と変数を・・・。 6453 επιστημη 2006/09/11 15:53:43
<子記事> Re:定数と変数を・・・。 6454 たかぎ 2006/09/11 16:20:12
<子記事> Re:定数と変数を・・・。 6455 dead man walking 2006/09/11 17:32:44
<子記事> Re:定数と変数を・・・。 6458 shu 2006/09/11 18:45:10
<子記事> Re:定数と変数を・・・。 6461 一回だけ 2006/09/12 10:26:13


No.6453

Re:定数と変数を・・・。
投稿者---επιστημη(2006/09/11 15:53:43)


>定数と変数が、イマイチ理解できないので、

「イマイチ」では分かったんだか分かんないんだかさっぱり分からん。
なにが/どう分からんのか説明すべし。

> 何かいい勉強方法があれば教えてください。

本を読む。コードを読んでマネをする。



この投稿にコメントする

削除パスワード

No.6454

Re:定数と変数を・・・。
投稿者---たかぎ(2006/09/11 16:20:12)
http://takagi.in/


>定数と変数が、イマイチ理解できないので、何かいい勉強方法があれば教えてください。

とりあえず、それぞれについて自分なりの説明をしてみてください。
間違っていたり、不足があれば指摘するようにします。



この投稿にコメントする

削除パスワード

No.6455

Re:定数と変数を・・・。
投稿者---dead man walking(2006/09/11 17:32:44)


>定数と変数が、イマイチ理解できないので、何かいい勉強方法があれば教えてください。

読んで字の如く、定数は定まった数字。原則変化はしない。
変数は変わる数字、中身は色々変えられます。

ところで匿名と言ってるのに、メアドを入れるのはオススメできませんね。


この投稿にコメントする

削除パスワード

No.6456

Re:定数と変数を・・・。
投稿者---nano(2006/09/11 17:43:25)


>読んで字の如く、定数は定まった数字。原則変化はしない。
>変数は変わる数字、中身は色々変えられます。

数字だけとは限らないです。
少し手がすべっただけだと思いますが…。


この投稿にコメントする

削除パスワード

No.6457

Re:定数と変数を・・・。
投稿者---たかぎ(2006/09/11 18:37:30)
http://takagi.in/


>読んで字の如く、定数は定まった数字。原則変化はしない。
>変数は変わる数字、中身は色々変えられます。

この説明では、いまいちわからない状況から抜けられないと思います。
例えば、

const volatile int a;
は、中身が変わりますがこれは変数ですか?

文字列リテラル "abc" や複合リテラル (int[]){ 1, 2, 3} は、変化しませんがこれは定数ですか?

1 + 2 の結果生じる一時オブジェクトは変化しませんが、これは定数ですか?

const int a = 123;
は変化しませんが、これは定数ですか?

size_t n;
int a[n];
に対する sizeof a は変数ですか?定数ですか?



この投稿にコメントする

削除パスワード

No.6458

Re:定数と変数を・・・。
投稿者---shu(2006/09/11 18:45:10)


>定数と変数が、

どっちかに絞ろう。
両方はよくばりだし、イマイチ理解できないものを、
二つも抱えた状態じゃ、わかるもんもわからなくなる。


この投稿にコメントする

削除パスワード

No.6459

Re:定数と変数を・・・。
投稿者---たかぎ(2006/09/11 19:06:37)
http://takagi.in/


>どっちかに絞ろう。

賛成。
できれば定義が明快な「定数」から理解することをお勧めします。



この投稿にコメントする

削除パスワード

No.6461

Re:定数と変数を・・・。
投稿者---一回だけ(2006/09/12 10:26:13)


>定数と変数が、イマイチ理解できないので、何かいい勉強方法があれば教えてください。

数学(算数?)で考えると
y=x+3
の変数はx、yで定数は3ですよね。

では誰でも一度は出会うhello.cでは?
void main(void)
{
printf( "Hello world");
}
ここでは "Hello world"が定数で変数はなし。

変数を使うと
void main(void)
{
char *p="Hello World";
printf( p);
}
となります。ここでの変数と定数は?
数学との違いは定数といっても数字だけではないということ。
(厳密には文字も数字もコンピュータ上は1と0の並びだけど)

多少乱暴な言い方をするとソース上に直に書いてある値(文字、数字、配列など)は定数。
プログラム実行時に値がセットされたり更新されたりするのが変数。
という感じだと思います。

#define で定義されたものはどっちでしょうかね?

プログラム実行時のコンピューター内でいうとこんな感じ。
・定数は実行時のコード領域に機械語と一緒に書かれてる。(コンパイラによるかも)
・変数はデータ領域に配置されて実行命令に従って値が更新される。



この投稿にコメントする

削除パスワード

No.6462

Re:定数と変数を・・・。
投稿者---たかぎ(2006/09/12 11:01:52)
http://takagi.in/


誤解されている方も多いようなので、一応コメントしておきます。

C言語では、「定数」の意味は厳密に定義されています。
JIS X3010:2003の6.4.4 定数を見ると、定数には次のものがあるとされています。
  • 整数定数(123とか0x55aaLなど)
  • 浮動小数点定数(1.23e45とか0x7.ffp12など)
  • 列挙定数(enum { aaa }のaaaなど)
  • 文字定数('a'とかL'字'など)
>ここでは "Hello world"が定数で変数はなし。

"Hello world"などはリテラルですが定数ではありません。(int[]){1, 2, 3} のような複合リテラルも、リテラルですが定数ではありません。
ただし、厳密な規格上の用語ではなく、「広義の定数」という捉え方をするなら、それもよいかと思います。

他に間違いやすいものとしては、

-123

のように符号が付いた数値も定数ではありません。
なぜなら、- というのは演算子なので、-123 は定数ではなく「定数式」になります。

>プログラム実行時に値がセットされたり更新されたりするのが変数。
>という感じだと思います。

「変数」というのは、規格の中にもところどころ現れますが、厳密な定義はないようです。
概ね上記の意味で使われているようですが、もう少し厳密に言うと、

「更新可能な左辺値を持つ名前付きのオブジェクト」

といった意味だと思います。
つまり、更新可能なオブジェクトであっても、mallocで動的に割付けた名前のないオブジェクトは変数とは呼びません。
# ここはもしかすると解釈が間違っているかもしれません。
# 気付かれた方はご指摘ください。

>#define で定義されたものはどっちでしょうかね?

これは微妙ですが、定義内容が定数であれば、定数とみなしても問題ないでしょう。
マクロは前処理でしか使われないので、やや別格なのです。
ちなみに、#ifで評価される式の中で使われる 123 などは、「定数」ではなく、「前処理数」と呼ばれます。



この投稿にコメントする

削除パスワード

No.6464

Re:定数を・・・。
投稿者---匿名(2006/09/12 14:37:59)


書き込みを見ても超ド素人なのですみませんが理解できません。これすら理解できない場合諦めたほうがいいのでしょうか?基本中の基本から勉強する何かいい方法とかはありませんか?もしあれば教えて下さい。本とかでもどの様な本なのかとか。是が非でも覚えたいのでよろしくお願いします。


この投稿にコメントする

削除パスワード

No.6465

Re:定数を・・・。
投稿者---nano(2006/09/12 14:54:12)


さしあたり、ここの掲示板と関係の深いWebサイト
初心者のためのポイント学習C言語

第2章 データの扱い

あたりをおさえておけばよいのではないでしょうか?



この投稿にコメントする

削除パスワード

No.6466

Re:定数を・・・。
投稿者---dead man walking(2006/09/12 15:04:22)


゚Д゚)ェ…

「自称素人」は本当だろうと嘘だろうと、ネット上では免罪符には成りえません。
質問者も回答者も立場は対等です。
「自分は素人だから答えてもらえるだろう」という考えは全くの的外れであることを理解しましょう。
その上で質問をする場合、「何」が分からないのかを明確にする必要があるわけです。

で、「何」が分からないんでしょうね。
全部はダメですよー全部は。


とりあえずgoogle
http://www.google.com/search?num=50&hl=ja&q=C%E8%A8%80%E8%AA%9E+%E5%AE%9A%E6%95%B0+%E5%A4%89%E6%95%B0&lr=lang_ja

#そもそも定数と変数と言ったって、辞書的な意味とかC言語としての意味とか
#ローカルとかグローバルとか色々あるし…


この投稿にコメントする

削除パスワード

No.6469

Re:定数を・・・。
投稿者---匿名(2006/09/13 14:35:37)


>「自称素人」は本当だろうと嘘だろうと、ネット上では免罪符には成りえません。
>質問者も回答者も立場は対等です。
>「自分は素人だから答えてもらえるだろう」という考えは全くの的外れであることを理解しましょう。
                                 そうゆう意味ではありません。超ド素人なので理解出来ませんという意味で、超ド素人やから教えて下さいという意味ではありません。                                       >その上で質問をする場合、「何」が分からないのかを明確にする必要があるわけです。
>で、「何」が分からないんでしょうね。
>全部はダメですよー全部は。

「何が」基本中の基本です。自分が書いたのは、0から定数の勉強をする方法を聞いたのであって(ホームページやら本やら)この掲示板で定数を0から教えてという意味ではありません。                                               


この投稿にコメントする

削除パスワード

No.6470

Re:定数を・・・。
投稿者---nano(2006/09/13 14:50:33)


私が紹介したURLはごらんになりましたか?
さしあたっては、
    a = 10;

という文で、aは変数(どこか別の文で、違う値を代入できる)で
10は定数(左辺には来ない)なんだな、というくらいで十分だと思います。
あまり突き詰めようとしすぎると、先へ進めなくなります。


この投稿にコメントする

削除パスワード

No.6473

Re:定数を・・・。
投稿者---匿名(2006/09/13 15:28:37)


>URLを見ました。
>やはりきっちり理解はできないですが
>
    a = 10;

>という文で、aは変数(どこか別の文で、違う値を代入できる)で
>10は定数(左辺には来ない)なんだな、というくらいで十分だと思います。

この文は理解しました。
ただ第2章にある、さんぷるやえんしゅうを見ても、さっぱりわかりません。こんなんで先へ行って大丈夫でしょうか?


この投稿にコメントする

削除パスワード

No.6475

Re:定数を・・・。
投稿者---nano(2006/09/13 15:57:04)


>ただ第2章にある、さんぷるやえんしゅうを見ても、さっぱりわかりません。こんなんで先へ行って大丈夫でしょうか?

C言語(他のプログラミング言語でも同じなんですが)には、
変数と定数というものがあります。これらの大まかな意味
(厳密な定義は、他のかたや言語規格書にお任せします)は、
先に書いたとおりです。
変数にも定数にも、いろいろな型(整数、実数、文字)があります。
型によって、扱えるデータの種類や範囲が異なっています。
例えば、あまり大きすぎる数や小さすぎる数は整数型の範囲に
収まりきらない、というようなことです。

ここまで理解できたら、2章のサンプル(2−2)にある文の一つ一つを
よく読んで、コメントや解説文と照らし合わせてください。
一足飛びに先へ進もうとしないことです。


この投稿にコメントする

削除パスワード

No.6477

Re:定数を・・・。
投稿者---dead man walking(2006/09/13 17:45:10)


なんかこう、完璧主義者かなんかなんでしょうかねえ。

正直いって、初心者であることを自覚してる段階で、「変数」や「定数」の
厳密で明確な定義を知る必要は、必ずしも無いと思いますよ。
上では私も含めて皆さん侃々諤々してますけど、つまりは多少分かっている
人たちの間でも、その定義が揺れているわけですから。

またこの先のことを心配しているようですが、多分授業でも変数定数の「定義」
を勉強することはないと思いますよ。
この数字をローカル変数と呼ぶ、ここの定数は何々です、みたいな感じで、
重要なのは「定義」ではなく「呼称」ですから。(少なくとも最初は


この投稿にコメントする

削除パスワード

No.6478

Re:定数を・・・。
投稿者---たかぎ(2006/09/13 18:07:02)
http://takagi.in/


>正直いって、初心者であることを自覚してる段階で、「変数」や「定数」の
>厳密で明確な定義を知る必要は、必ずしも無いと思いますよ。

その通りだと思います。
実装と完全に分離した厳密な仕様を作ったり、高い移植性が要求されるような開発に従事しなければ、厳密な定義はもちろん、まるで区別が付かない状態でもそれほど問題はありません。
# それよりもっと重要なことがいろいろあるはずです。

元々、「いまいち理解できない」とのことでしたので、完全に理解することを目的にしているのかと思いましたが、どうやらそうでもないようですし...。



この投稿にコメントする

削除パスワード

No.6467

Re:定数を・・・。
投稿者---たかぎ(2006/09/12 16:03:38)
http://takagi.in/


>書き込みを見ても超ド素人なのですみませんが理解できません。これすら理解できない場合諦めたほうがいいのでしょうか?

定数と変数が皆目分からないのではなく、「いまいち」分からないのですよね。
以前にお願いしましたが、理解されている範囲で説明してみてください。そうしていただかない限り、あなたに合った説明はできません。

ちなみに前回の説明は、あなたに対するものではなく、回答者の中にも誤解されている方が多いので、そのための説明です。超ド素人が完全に理解できることは初めから期待していません。
なお、あなたが超ド素人であることは今初めて知りました。定数と変数がいまいち分からないまでも、ある程度理解されているのであれば、(玄人に対する素人ではあっても)普通は超ド素人とはいいません。

> 基本中の基本から勉強する何かいい方法とかはありませんか?

まずは人の話を聞きましょう。そうでなければ、どんな良書を紹介しても無意味です。
万一日本語が理解できないのであれば、その旨告知してください。



この投稿にコメントする

削除パスワード

No.6471

Re:定数を・・・。
投稿者---匿名(2006/09/13 15:04:41)


>定数と変数が皆目分からないのではなく、「いまいち」分からないのですよね。
                                 いまいちと書いたのは、ホームページなどの説明を見てもゆうてる意味はなんとなくわかるような気もするけどわかれへんから、いまいちと書いただけです。これは言葉のミスです。すいません。                                            >
>ちなみに前回の説明は、あなたに対するものではなく、回答者の中にも誤解されている方が多いので、そのための説明です。超ド素人が完全に理解できることは初めから期待していません。
                                 誰も自分宛の書き込みとは書いてません。書き込みを見ても理解できないと書いてあるはずです。万が一日本語が理解できないのであれば、その旨告知してください。



この投稿にコメントする

削除パスワード

No.6472

Re:定数を・・・。
投稿者---nano(2006/09/13 15:07:45)


日本語の理解云々については、もうやめにしてください。
ここはC言語に関する掲示板です。


この投稿にコメントする

削除パスワード

No.6474

Re:定数を・・・。
投稿者---asd(2006/09/13 15:52:20)


#何だか変なインデントが入って見難いですけど・・・

ここまでのやりとりの中で「現時点で匿名さんが考える定数、変数を説明してください」との回答があったかと思いますが、説明はできないのでしょうか?

そうであればご自分で書店や図書館、インターネットページに出向きいろんな書物、資料を見た上で、自分なりに定数、変数を考えてみてください。
そしてそれをここで説明してみてください。
間違っていれば訂正などしてもらえると思いますし。

「分かりません」と理解することから逃げていてはずっと分かりませんよ。
「分からないからこそ少しずつ理解していく」姿勢が大切です。

長文失礼しました。


この投稿にコメントする

削除パスワード

No.6479

Re:定数を・・・。
投稿者---shu(2006/09/13 19:09:35)


>これすら理解できない場合諦めたほうがいいのでしょうか?
>基本中の基本から勉強する何かいい方法とかはありませんか?
>本とかでもどの様な本なのかとか。

質問は一つに絞る。
三つも質問している。

Re:定数を・・・。とタイトルを変えたようですが、
書きこみ内容を見る限り定数に関する質問になっていない。



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧





掲示板提供:(有)リアル・インテグリティ