1 名前:デフォルトの名無しさん [2012/07/15(日) 10:28:33.18 ] C言語の入門者向け解説スレッドです。 ★前スレ C言語なら俺に聞け(入門編)Part 103 toro.2ch.net/test/read.cgi/tech/1341059858/ ★過去スレ makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000 ★教えて欲しいのではなく宿題を丸投げしたいだけなら ↓宿題スレ↓へ行ってください。 C/C++の宿題片付けます 158代目 toro.2ch.net/test/read.cgi/tech/1339338438/ ★C++言語については避けてください。C++対応明記スレへどうぞ。 ★分からない事をなるべく詳しく書いて下さい。 ★ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。 # サイズが大きい場合はアップローダ等を利用してください。 codepad.org/ ideone.com/ ★開発環境や動作環境も晒すと答えが早いかもしれません。 ★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
882 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 13:47:48.09 ] >>880 ttp://ideone.com/mZwCB 自動変数というのは自動的に領域の確保と解放をする変数で 初期化(あるいは代入)せずに参照すると値が不定となる 自動変数ではなく静的変数とするにはstaticを付けるかグローバル変数とする
883 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 14:56:49.16 ] ズルして楽して覚えても結局は言語仕様に戻る罠。 面倒でも暇を見てヘルプや仕様を読む癖をつけるのが良いと思うよ。
884 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 14:57:59.08 ] >>876 いろいろやりかたはあるが、条件を表にしておき関数ポインタを持っておくとか オートマトンで使われるような状態遷移図にも似たような手法が使われる
885 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 15:29:21.79 ] #include <stdio.h> #define _TRUE 1 #define _FALSE 0 int fff(void) { printf("%s\n", __func__); } int fft(void) { printf("%s\n", __func__); } int ftf(void) { printf("%s\n", __func__); } int ftt(void) { printf("%s\n", __func__); } int tff(void) { printf("%s\n", __func__); } int tft(void) { printf("%s\n", __func__); } int ttf(void) { printf("%s\n", __func__); } int ttt(void) { printf("%s\n", __func__); } int (*tbl[2][2][2])(void) ={ { { fff, fft }, { ftf, ftt }, }, { { tff, tft }, { ttf, ttt }, }, }; int main(void){ (*tbl[_FALSE][_FALSE][_FALSE])(); (*tbl[_FALSE][_FALSE][_TRUE])(); (*tbl[_FALSE][_TRUE][_FALSE])(); (*tbl[_FALSE][_TRUE][_TRUE])(); (*tbl[_TRUE][_FALSE][_FALSE])(); (*tbl[_TRUE][_FALSE][_TRUE])(); (*tbl[_TRUE][_TRUE][_FALSE])(); (*tbl[_TRUE][_TRUE][_TRUE])(); return 0; }
886 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 15:29:52.05 ] lenovo@LENOVO-0C414D26 ~ $ ./a.exe fff fft ftf ftt tff tft ttf ttt
887 名前:433 mailto:sage [2012/08/05(日) 17:00:58.51 ] >>882 自動変数と静的変数というのは一般的に言われる「変数」を噛み砕いたものという事でしょうか? 初期化しないままに参照するのは結果的にエラーを吐くのは分かったのですが、 初期化したものをその後に参照しようとしても参照できない場合があるのはなぜなのでしょう やはりCの仕様なんでしょうか…
888 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 17:11:38.25 ] アドレスが違うか見てみれば
889 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 17:13:28.31 ] "スコープ"とか"変数の寿命"でググれや
890 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 17:54:40.51 ] >>887 ttp://ideone.com/xmVR8 >自動変数と静的変数というのは一般的に言われる「変数」を噛み砕いたものという事でしょうか? 変数には大雑把にいって自動変数と静的変数がある >初期化したものをその後に参照しようとしても参照できない場合があるのはなぜなのでしょう 初期化したつもりで自動変数を初期化してなかったので 「変数'iobject'が初期化されてないのに使われようとした」というエラー(警告?)になったのだと思われ Run-Time Check Failure #3 - The variable 'iobject' is being used without being initialized.
891 名前:433 mailto:sage [2012/08/05(日) 18:16:14.23 ] 返答早すぎですw多くのレスありがとうございます>< まだC言語は半月くらいの経験しかない身ではしたない部分があるにも関わらず多くアドバイスを頂き感謝し尽せないです。。。 >>890 初期化した場所が悪かったのか、初期化した後変数が別の変数に変わってしまったのか分かりませんがエラーの内容からすれば変数の初期化をする場所にルールがあるんじゃないか、とちょっと気づいてきました…(´・ω・`) >>889 ブロックスコープという存在を知らなかった…orz しかも私が今併用しているC言語入門書には書いていない件(tyow >>888 ポインタですね^^ 後々解析してみまぁす。ありがとうございます〜 皆様、貴重なご教示ありがとうございました。
892 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 18:32:40.71 ] >>891 www9.plala.or.jp/sgwr-t/index.html
893 名前:876 [2012/08/05(日) 18:36:50.41 ] >>877 , 884様 とりあえず今回は3条件T/Fで設計してしまったので、 ビットフラグで行こうと思います。 検索したらUMLとか状態遷移とかを解説しているページが 多く見られ、大変参考になりました。ありがとうございました。
894 名前:デフォルトの名無しさん [2012/08/05(日) 18:45:27.84 ] はじめまして。 <=====の行がうまくいかないです。アドバイスお願いします。 int *po,ban,i; po=&ban; for(i=0;i<5;i++){ *(po+i)=i; /*<=====*/ }
895 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 18:51:18.64 ] とりあえず、がんばれ、と言っておこう
896 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 18:56:35.63 ] >>894 ttp://ideone.com/g4bsT
897 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 18:56:57.06 ] はじめまして。 <=====の行がうまくいかないです。アドバイスお願いします。 int *po,ban,i; po=&ban; for(i=0;i<5;i++){ *(po+i)<=====i; }
898 名前: ◆QZaw55cn4c mailto:sage [2012/08/05(日) 19:08:48.26 ] >>894 ideone.com/cV82Z
899 名前:デフォルトの名無しさん [2012/08/05(日) 19:20:02.69 ] >>896 >>898 banを配列にしないとダメなんですね。 サンクス
900 名前:デフォルトの名無しさん [2012/08/05(日) 19:29:40.53 ] 自動変数は何が自動なんですか。手動変数もありますか。
901 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 19:30:21.98 ] ぽいぽいPOI!!! ふぉいふぉいFOI!!! カネ返せFOI!!! カネ返せPOI!!!
902 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 19:34:03.62 ] 全自動変数 半自動変数 手動変数
903 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 19:41:31.07 ] 変数がメモリ上のどこにあるのかを考えろよw 答えはそこにある。
904 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 19:46:12.93 ] 変数 固定変数 変動定数 定数
905 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 21:09:56.68 ] ふひひ
906 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 23:53:22.62 ] このスレ質問ても処理系は何?と聞いてごまかして答えてくれないよね。 専門知識を教えるのは億劫なんかね。
907 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 23:56:26.74 ] 質問ても?
908 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 00:00:50.30 ] >>907 ゴミは黙れ
909 名前:デフォルトの名無しさん [2012/08/06(月) 00:06:41.76 ] >>907 茶化すなよ
910 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 00:53:54.49 ] >>906 C言語は低レベルなので処理系聞かないと規格票の範囲でしか答えられないからです
911 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 01:05:43.22 ] >>908-909 失せろゴミ
912 名前:デフォルトの名無しさん [2012/08/06(月) 01:29:45.60 ] >>906 いや、お前がゴミだから。
913 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 01:50:31.12 ] IDがでねー掲示板で何やってんだお前ら。。
914 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 01:51:54.79 ] ↑馬鹿
915 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 01:57:04.14 ] ('_')
916 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 02:08:19.48 ] 知識は出し惜しみすんなよクズ 共有しないと意味ねーだろ
917 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 02:10:22.41 ] もうずっとプログラマ大杉
918 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 02:14:15.34 ] 共有() 一方的にもらうだけの乞食が
919 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 02:21:13.35 ] 処理系を知りたいならアセンブラ。 遠慮せずにそちらの世界へ。
920 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 02:22:09.03 ] けんかしにここにきてるのかお前ら そんなひまがあったら働け
921 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 02:30:41.89 ] >>919 「処理系」の意味がわかってないような
922 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 04:52:17.60 ] >>919 お前が一番分かってない
923 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 04:54:56.41 ] >>921-922 ほう。 どうわかってないのか、正しくはどうなのか説明してみ。
924 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 04:56:47.56 ] >>923 人に教えてもらう態度ではないな
925 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 05:00:05.49 ] >>924 失せろゴミ
926 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 05:02:32.65 ] >>919 お前が処理系を何だと思ってるか説明するのが先だ ゴミしか言えないのかよ
927 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 05:08:28.84 ] 判断の根拠を言えよバーカ わかってないのに判断したのかよ
928 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 05:09:47.45 ] ゴミとバーカしか言えないのかよ
929 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 05:10:32.27 ] アホ
930 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 05:15:13.50 ] >>910 と>>919 の処理系の意味の違いさえ分からないゴミカス乙
931 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 05:18:30.81 ] ゴミとバーカとアホとゴミカスしか言えないのかよ
932 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 05:19:51.18 ] お前らいい加減やめろよ・・・
933 名前:デフォルトの名無しさん [2012/08/06(月) 05:20:03.08 ] しか言えないのかよしか言えないのかよ
934 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 05:27:39.39 ] >>930 https://www.google.co.jp/search?q=%E5%87%A6%E7%90%86%E7%B3%BB
935 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 05:36:14.40 ] >>930 >>919 だけが「処理系」の意味を知らないだけで 他の人は全員「処理系」の意味を理解して、同じ意味で使っている。
936 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 06:56:49.37 ] 919に言ってやれよ
937 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 07:01:02.28 ] 919に言ってやれよしか言えないのかよ
938 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 07:26:09.48 ] 919に言ってやれよしか言えないのかよしか言えないのかよ
939 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 07:34:52.32 ] 919に言ってやれよしか言えないのかよしか言えないのかよしか言えないのかよ
940 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 07:40:55.44 ] アホ自慢はもういいから。
941 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 07:57:40.08 ] implementation 実装、処理系
942 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 08:00:57.45 ] 規格ではなく処理系でことなる部分がある(処理系依存の部分、未定義の部分)
943 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 08:04:17.84 ] ダンプ解析しないのかな。
944 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 08:06:47.66 ] 童貞先生ゴミマ
945 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 08:11:40.73 ] #include <stdio.h> int main(void) { int i = 2; printf("%d\n", ++i*(++i) ); return 0; } /* C:\work>gcc -Wall -o ppi ppi.c ppi.c: In function `main': ppi.c:5: warning: operation on `i' may be undefined C:\work>ppi 16 C:\work>dmc ppi.c link ppi,,,user32+kernel32/noi; C:\work>ppi 12 */
946 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 08:12:19.52 ] ぶひ
947 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 08:19:45.88 ] >>945 何したいんだ? #include <stdio.h> int main(void) { int i = 2, j; j = ++i; printf("%d\n", j*(j) ); return 0; }
948 名前:デフォルトの名無しさん [2012/08/06(月) 08:43:31.10 ] >>947 アホは書き込むな。
949 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 08:47:57.14 ] Qがコテを隠して朝からファビョっているのか
950 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 09:22:10.78 ] アホは書き込むな。しか言えないのかよ
951 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 09:34:44.57 ] ぶひひ