- 1 名前:デフォルトの名無しさん [2015/05/27(水) 06:15:55.14 ID:gRxCv8ae.net]
- C言語の入門者向け解説スレッドです。
★前スレ C言語なら俺に聞け(入門編)Part 127 peace.2ch.net/test/read.cgi/tech/1424244688/ ★過去スレ ttp://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++の宿題片付けます 168代目 peace.2ch.net/test/read.cgi/tech/1408962564/ ★C++言語については避けてください。C++対応明記スレへどうぞ。 ★分からない事をなるべく詳しく書いて下さい。 ★ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。 # サイズが大きい場合はアップローダ等を利用してください。 ttp://codepad.org/ ttp://ideone.com/ ★開発環境や動作環境も晒すと答えが早いかもしれません。 ★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 【重要】 当たり前の事ですが、2chではコピペ荒らしは禁止されています
- 313 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 22:39:28.45 ID:fUDxTJnN.net]
- >ID:p7ULLFoK
プロセス間通信のサンプルソース読んでフロチャートぐらい描いてから質問しろ。
- 314 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 22:41:39.07 ID:i2r6Oae2.net]
- >>306
動的確保したデータの型は?
- 315 名前:デフォルトの名無しさん [2015/06/23(火) 22:48:15.37 ID:HChqJ3xP.net]
- >>308
double型で**xを作成して、xを関数に受け渡しました。 ukewatasi(double **x) int main(){ double **x; ukewatasi(x); } のような感じです。
- 316 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 22:50:50.38 ID:x6cWTlKo.net]
- >>309
> 動的確保により作成した2次元配列 とは、こんな感じで確保したの? (double(*)[123])malloc(n*123*sizeof(double)) であれば double(*a)[123] みたいに渡せばいい。
- 317 名前:デフォルトの名無しさん [2015/06/23(火) 22:51:11.69 ID:HChqJ3xP.net]
- 何度もレス申し訳ないです。
関数の内容は渡された2次元ポインタ?に対する動的確保です。 動的確保をユーザ定義関数内で行おうとしています。
- 318 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 22:51:27.89 ID:qkxeTacg.net]
- >>309
受け渡しはそれで問題無いんじゃないか。 その後の配列の使い方に問題有るんじゃないか?
- 319 名前:デフォルトの名無しさん [2015/06/23(火) 22:55:23.42 ID:HChqJ3xP.net]
- >>312
プログラム内の主な部分をとりあえず消してみたので、その後の処理は for(i=0;i<n;i++)free(x[i]); free(x); を使って開放しているだけにしてあります。
- 320 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 23:10:53.90 ID:DrRN54sL.net]
- >>311
引数の書き換えによる呼び出し元への渡しじゃなく 戻り値じゃだめなの? int を引数書き換えで戻す func(int *a) { *a = こっちで設定した値 } 型type を 引数書き換えで戻すのは func(type *a) になる 2次元配列(ポインタ配列) double** を type とみなすのなら func(double*** a) になるんじゃないか?
- 321 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 23:21:43.47 ID:DrRN54sL.net]
- おっと呼び出し元のほう書き忘れてた
>>314 の 型type を 引数書き換えで戻すのは func(type *a) になる 呼び出し元は 型type の変数 a を用意して func(&a) と呼び出す ⇒ double **x を用意し、func(&x) で書き換えてもらう
- 322 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 23:23:43.71 ID:x6cWTlKo.net]
- >>309
>>313 それでいいよ。としか答えられないんだが。 自分の問題点を単純化して、 省略せずmain関数込みで晒すしかないんじゃね?
- 323 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 23:28:11.11 ID:DrRN54sL.net]
- 元質問よく読むと >>314,315 は関係なさそうだわ とりさげ
- 324 名前:デフォルトの名無しさん [2015/06/23(火) 23:33:51.75 ID:HChqJ3xP.net]
- すみません、mainとその関数はこんな感じです。
void getm(int n,double **x) { int i; x = (double**)malloc(sizeof(double*) * n); if(x == NULL){ puts("メモリを確保できませんでした"); exit(0); } for(i=0;i<n;i++){ x[i] = (double*)malloc(sizeof(double) * n); if(x[i] == NULL){ puts("メモリを確保できませんでした"); exit(0); } } } int main() { int i,j,col,ln,n; double **a,**b; getm(n,a); for(i=0;i<n;i++)free(a[i]); free(a); return 0; }
- 325 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 23:38:22.26 ID:Hn8bvGAp.net]
- そりゃ停止するわ
- 326 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 23:47:19.57 ID:x6cWTlKo.net]
- #include <stdio.h>
#include <stdlib.h> #include <malloc.h> void getm(int n, double ***y) { inti; double**x; x = (double**)malloc(sizeof(double*) * n); if(x == NULL){ puts("メモリを確保できませんでした"); exit(0); } for(i=0;i<n;i++){ x[i] = (double*)malloc(sizeof(double) * n); if(x[i] == NULL){ puts("メモリを確保できませんでした"); exit(0); } } *y = x; } int main(void) { int n,i; double **a = NULL; n = 5; getm(n,&a); for(i=0;i<n;i++) free(a[i]); free(a); return 0; }
- 327 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 00:05:36.88 ID:e9gtZvXy.net]
- (>'A`)> うわぁ
- 328 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 00:39:48.68 ID:edfJthnp.net]
- >>320
getm() の戻り値をアドレス値(のコピー)にした方がいいんじゃない。 double **getm(int n) { double **x; : return x; } int main(void) { : double **a; : a = getm(n); : }
- 329 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 00:49:44.96 ID:TqWBqUYf.net]
- 問題の本質が動的確保とか2次元うんたらじゃないね。こんな感じのまちがいか?
void func(int x) { x=5; }
- 330 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 01:41:06.19 ID:x8P9P79s.net]
- これと同じような問題は他の関数でFILE構造体へのポインタを持って行って
openしたのに「あれっ?」というのに似てるな void func(FILE *fp) { ...fpをopenする処理 } func()から戻ってもfpに代入されたFILE構造体がopenされてない (正確にはfunc()内でopenして代入した値がどこかで遊んでいる) 正しくは void func(FILE **fp) { *fp=fopen(//// } とやるかC++なら void func(FILE *&Fp) まあこんなアホな書き方は普通しないけど
- 331 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 04:19:45.17 ID:psgmC6/v.net]
- これはひどい
- 332 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 08:11:51.66 ID:aN9Ts3NW.net]
- void getm(int n, double ***y) {
*y = (double **)malloc(sizeof(double *) * n); if (*y == NULL) { puts("メモリを確保できませんでした"); exit(0); } for (int i=0; i<n; i++) { (*y)[i] = (double *)malloc(sizeof(double) * n); if ((*y)[i] == NULL) { puts("メモリを確保できませんでした"); exit(0); } } }
- 333 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 17:58:36.34 ID:u4ZdF9De.net]
- @if (strcmp(argv[1], "ch") == 0)
Aif(*argv[1] == "ch") この書き方何が違うんですか?
- 334 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 18:02:18.92 ID:5nU4RVUe.net]
- C言語じゃ文字列の比較は”==”ではできないよ
- 335 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 18:38:26.93 ID:3Hv0NUBx.net]
- *argv[1] 多分char型 1バイトの数値
"ch" "ch"という文字列が格納されているアドレス 環境依存だが16/32/64bit数値
- 336 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 18:46:20.02 ID:FOAJx/zB.net]
- C言語の定義ってあるんでしょうか?
出来上がったものをC言語として纏めたからそれをC言語と呼んでいるのか こういう機械語への変換を約束するように設計されたのがC言語がなのかどっちなのでしょうか? ようはコロンブスの卵みたいな問題ですが
- 337 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 18:49:40.49 ID:hCh+/iKv.net]
- >>330
その答えが分かったとして 何か役に立つのか?
- 338 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 18:56:12.91 ID:e9gtZvXy.net]
- (国際)規格おっかけたら?
ISO/IEC 9899:2011
- 339 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 19:28:44.29 ID:FOAJx/zB.net]
- >>331
コンパイラの勉強してます^^ 例えば graph.hってありますよね? C言語にはGUIが無いからライブラリとしてインポートして 使えるだけでgraph.h自体はC言語じゃないけど、何故かC言語扱いされてますよね みんなどこまでをC言語って呼ぶか定まってないのではないかと思います。 設計者自身もそう思ってるんじゃないでしょうか?
- 340 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 19:32:09.49 ID:hCh+/iKv.net]
- >>333
そのファイルの中にc言語のソースコードがはいっていれば.hでも何でも全部c言語だろ。
- 341 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 19:40:36.46 ID:wt32uzVz.net]
- 別言語だが、PHPのなかでHTMLのソースコードが入っていたらそれはPHPじゃなくなるのか
- 342 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 19:46:26.31 ID:FOAJx/zB.net]
- >>335
いや関数とかはC扱いになるのかなと drawcircleとかいう関数はCのGUI関数なのか ライブラリから呼ぶCのものではないGUI関数なのか
- 343 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 19:54:20.47 ID:cFIj+m2b.net]
- また思い込みの人か
- 344 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 20:08:54.30 ID:FOAJx/zB.net]
- そこらへんそんなに気にしなくていい感じですか?
- 345 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 20:09:42.03 ID:3Hv0NUBx.net]
- 日本語に英単語が混じったら日本語ではなくなるのか。
- 346 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 20:18:53.14 ID:e9gtZvXy.net]
- Cコンパイラの作り方の勉強? Cコンパイラの使い方の勉強?
- 347 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 20:25:42.13 ID:FOAJx/zB.net]
- >>339
正式にC言語の関数といえるのか知りたいです。 例えばfork()はシステムコールであってC言語ではないけどCのコードによく 出てくるじゃないですか? そういう事です。
- 348 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 20:26:12.07 ID:FOAJx/zB.net]
- 例えば識者(Cに携わった人達)がそれも標準Cに入れようってなったら
正式にC言語の関数となるんですか?
- 349 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 20:31:32.11 ID:e9gtZvXy.net]
- ここでクダ巻かず標準化委員会にでもいっといで
- 350 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 20:34:00.48 ID:5/GXLIV8.net]
- キミは「C言語 規格」で検索してみようという知恵は働かないのか?
- 351 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 21:32:22.70 ID:3Hv0NUBx.net]
- 規格通りに作られたC言語コンパイラでコンパイル出来て想定通りに動くならC言語だよ。
- 352 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 21:40:22.84 ID:3Hv0NUBx.net]
- >正式にC言語の関数となるんですか?
正式な「C言語の関数」の定義は?
- 353 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 22:05:22.37 ID:zNYvxzaB.net]
- 頭でっかちバカ
- 354 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 22:24:01.80 ID:mSDBMbUW.net]
- >>337
>>218
- 355 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 22:37:35.23 ID:BVqVeXIZ.net]
- >>346
自分の中のC言語の定義は ・計算処理が高速(ダイレクトに機械語へ変換するから) ・グラフィック出力が出来ない(C開発環境における端末の多くは図形描画できないため(cygwinなど)) ・文字入力、出力はアスキーコードの範囲内(255文字までしか対応していないコンパイラが殆ど) つまりCは計算をして出力する、まさに計算専用の言語だという認識です。
- 356 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 22:41:14.75 ID:5/GXLIV8.net]
- >>349
キミのその定義のC言語は、ここで話題にしてるC言語とは違うね。 とっとと出てけ、二度と来るな。
- 357 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 22:45:41.35 ID:BVqVeXIZ.net]
- >>350
このスレは文法的な話が多いしナチュラルなC言語の話がメインじゃないですか? 後 C言語規格で検索かけました。 アメリカはANSI 日本はJISが 規格に関して管理してるってことが分かりました。 どっちの権限が強いとかあるんでしょうか? Cって日本が開発したものじゃないからアメリカANSI の承認がないと自由に開発できない、変更できないとかあるんでしょうか? それとも並行して自由なCのタイプを作っていっていいとか。
- 358 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 23:08:27.15 ID:YYL+BoO/.net]
- 根本が間違ってて指摘も矯正も不可能です。
- 359 名前:351 mailto:sage [2015/06/24(水) 23:11:06.20 ID:BVqVeXIZ.net]
- 本気で気になってるので誰かCの規格や定義に詳しい人教えて下さい
- 360 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 23:17:53.88 ID:YYL+BoO/.net]
- 適当に読んどけ。
ttp://www.bohyoh.com/CandCPP/C/index.html ttp://www.comm.info.eng.osaka-cu.ac.jp/~sugi/C_lang2/C1.html#anchor265686 これ以上は専門書探せ。もう疲れた…。
- 361 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 23:26:38.68 ID:zNYvxzaB.net]
- 読んで理解をしないんだろうな
- 362 名前:351 mailto:sage [2015/06/24(水) 23:27:12.64 ID:BVqVeXIZ.net]
- >>354
ありがとうございます CもANSI本筋と傍流があるんですね
- 363 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 23:54:49.59 ID:5DYqddEm.net]
- 言語仕様と標準ライブラリの関係を言ってるんでしょ?
違う意味なら知らん
- 364 名前:351 mailto:sage [2015/06/25(木) 00:03:15.94 ID:sP9h+oqg.net]
- >>357
言語仕様の中で標準ライブラリが定義されてるんですよね? てことは言語仕様にないfork()やdrawcircle()はC言語の関数と言っては ダメじゃないんですか?
- 365 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 00:14:54.02 ID:0iBjMS7W.net]
- printf()やfopen()もアセンブラや別言語で書かれてるぞ。
- 366 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 00:16:51.58 ID:0iBjMS7W.net]
- 言語のなんたるかを決めるのはお前じゃないってことだ。
- 367 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 04:32:18.38 ID:Li5opHJV.net]
- だから関わるなと言ったのに
- 368 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 07:43:04.30 ID:cFsyQBWH.net]
- ヲタクプログラマーだからな。
- 369 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 09:28:35.57 ID:KIT3ByGG.net]
- ここの人間は以外とお人よしっつーか面倒見がいいよなw
- 370 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 09:46:28.93 ID:UIqr32+m.net]
- cdecl から調べた方が速そう
- 371 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 11:17:24.92 ID:U+zmiSvD.net]
- >>6
そんな苦労してまで、三項演算子使わなくても良いのに。
- 372 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 11:27:48.98 ID:U+zmiSvD.net]
- >>184
どんな言語でも、 文法としては正しくても、文章としては間違ってる事はいくらでもある。
- 373 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 11:55:06.12 ID:3kYUeLcc.net]
- そんな古い質問拾うなよ。また湧いて出てくるやん。
- 374 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 21:25:49.37 ID:sP9h+oqg.net]
- C言語ってある程度仕事でも詳しくなってもう余裕で分かるレベルになったら
次の楽しみって何になるんですかね?イマイチできる人のモチベーションがどこにあるか 分からないです。Cは一生かけても分からないくらい深いっていいますけど、未解決問題じゃあるまいし 単なる処理規則の集合なわけであって、どこらへんに奥深さがあるんでしょうかね。
- 375 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 21:32:37.30 ID:wU+kaldG.net]
- >>368
言語に奥深さは無い。まったくナンセンスな問題意識。
- 376 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 21:34:04.17 ID:gUXvHM4p.net]
- >>218
- 377 名前:デフォルトの名無しさん [2015/06/25(木) 22:07:39.16 ID:XxFekGl2.net]
- >>368
設計。 プログラミングが楽しいなんて言ってるうちは初心者。
- 378 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 22:15:45.28 ID:0iBjMS7W.net]
- >368
全ての仕事がそうだよ。所詮誰かがやったことの後追い。 それでもやったことが無いことを体験して、作ったことの無いものを作って、 満足できなかったものが少しだけマシになるのは楽しいよ。 自己満足といえばそう。 自己満足をポジティブに捉える人が楽しめ進められ、 ネガティブに捉える人は進まない。 あなたもあれは違う、コレはダメ、それはつまらないとネガティブで雁字搦めになってないで とりあえずやってみる、とりあえず進めてみて、経験を自分の糧にしてみなさい。
- 379 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 22:19:21.28 ID:Li5opHJV.net]
- 自分に害の及ばないものなら
他人の作ったもののテストも楽しい
- 380 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 22:21:02.82 ID:wU+kaldG.net]
- この人の場合、実践が伴ってないからへんてこなロジックに陥るんだろうな。
- 381 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 23:40:03.58 ID:/iOjq/uQ.net]
- スレがやたら伸びてるなーと思うと、いつもの人が暴れてると言う
- 382 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 23:45:44.08 ID:DMKfpdxo.net]
- >>368
高いお金をもらうのがモチベーション プログラミングはその手段の一つ 一つの言語を深くやるでも、多くの言語やるでもいいし、マネージメント、テストエンジニアリング、ドキュメンテーションでもいいし、自分の価値が上がる手段を増やせばいい 何も考えずに業務をこなすだけならやめた方がいい
- 383 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 00:27:42.12 ID:7ZHtA1tf.net]
- 複数の値を任意の数だけ入力させて結果を返すプログラムで、入力の終わりにctrl+zを押さなくても結果を表示できますか?
- 384 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 07:51:30.19 ID:58TwEZZ0.net]
- ctrl+zがいらない仕様にすれば出来るだろう。
- 385 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 08:56:47.59 ID:P2ouCsE5.net]
- 言葉ってある程度詳しくなってもう辞書引かなくても分かるレベルになったら
次の楽しみって何になるんですかね?小説とか書く人のモチベーションがどこにあるか 分からないです。言葉は一生かけても分からないくらい深いっていいますけど、未解決問題じゃあるまいし 単なる文字記号の集合なわけであって、どこらへんに奥深さがあるんでしょうかね。
- 386 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 09:25:10.82 ID:gBS6mhz7.net]
- >>377
空行を検出したら終了するように作るとか、任意の入力は必ずファイルから与えることにするとか、手は色々ある。
- 387 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 11:34:55.72 ID:P2ouCsE5.net]
- >>377
ありえない値(-1とか9999とか)を終端マークとして使うのが古典的な方法 最初の入力一件をデータ数とみなすとより無難
- 388 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 13:01:22.36 ID:HCrYWUwt.net]
- ポインタ使わず、配列の文字(ひらがな)操作出来ませんか?例 "あいう"→う だけ取り出す
- 389 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 13:18:07.33 ID:r1qkCt6W.net]
- >>377
(平均値のように) 入力値を一度きりしか使わず、即捨て出来る式で結果を表現できるなら 入力毎に結果を書く
- 390 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 13:46:28.74 ID:58TwEZZ0.net]
- >382
char mojiretu[]="あいう"; char kititori[4]={0}; kiritori[0]=mojiretu[4]; kiritori[1]=mojiretu[5]; printf("&s\n",kiritori);
- 391 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 14:48:37.18 ID:HCrYWUwt.net]
- >>384
文字コードが2バイトを使ったってことですね。気づきませんでした。まだやっていませんが多分出来そうです。ありがとう
- 392 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 16:25:25.05 ID:58TwEZZ0.net]
- >printf("&s\n",kiritori);
× &s ○ %s 何やってるんだorz
- 393 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 19:54:12.94 ID:oshtnfFs.net]
- C言語の文法やアルゴリズム自体は得意なのに
ライブラリなどのコードがいっぱいあると途端に読めなくなるのって どういった能力が欠如してるからですかね?僕の事です。
- 394 名前:デフォルトの名無しさん [2015/06/26(金) 20:02:28.58 ID:YZgXVwpx.net]
- 知識、経験。英語が得意なアメリカ人でもそれまで知らない英単語、ことわざはわからない。
- 395 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 20:11:34.53 ID:58TwEZZ0.net]
- 知らない関数、知らないマクロ、知らない構造体。
- 396 名前:デフォルトの名無しさん [2015/06/26(金) 20:12:11.42 ID:oshtnfFs.net]
- >>389
調べても書いてないんですよ そういう場合どうしたらいいですか?
- 397 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 20:38:50.73 ID:/lXarR0v.net]
- 知能が足りないんだと思うよ。
- 398 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 20:44:52.95 ID:oshtnfFs.net]
- >>391
向いてないんですかね… プログラマやめましょうか… 後仕事のプログラムって再帰ばっかりなんですよ 上司に聞いたら、再帰で複雑にしておいたほうが機密性が高くなるとのことです。 そんなことあるんでしょうか… 殆ど意味分からないんですよプログラムの内容が
- 399 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 20:56:10.89 ID:WXmHQpYf.net]
- おいらは再帰好きだよ
- 400 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 20:56:28.21 ID:oshtnfFs.net]
- しかも相互再帰…
相互再帰にしてほぼ解読不可能っていう… 趣味を仕事に持ち込むのは本当にやめてほしいです
- 401 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 20:57:03.78 ID:oshtnfFs.net]
- >>393
相互再帰もですか? 読みにくくなるだけで何のメリットがあるのかわかりません
- 402 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/06/26(金) 20:59:57.34 ID:xjgOsjgG.net]
- 多分、リバースエンジニアリング対策だろ
- 403 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 21:00:41.26 ID:oshtnfFs.net]
- 難読以外のメリットは、プログラムの書く量が減るから
プログラムの容量が小さくなることだそうです
- 404 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 21:03:03.00 ID:WXmHQpYf.net]
- 相互再帰は結構一般的ちゃうの?
個人的な意見だけど、再帰のが簡単にキレイにかける(ときもある) まあ、おいらはCもやるけどC専門じゃないからなぁ Cじゃ再帰は使わないお約束、みたいな感じだったらごめんね
- 405 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 21:04:00.77 ID:oshtnfFs.net]
- >>396
再帰は解読しにくいってことですね
- 406 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 21:11:35.75 ID:58TwEZZ0.net]
- >390
ヘルプを見る。解説を見る。 作ったやつ、使ったことのあるやつに聞く。 でなければサンプルソースを解析。 それでもわからなら後回しにするか、解らないまま変に弄らずに使う。俗に言う「おまじない」。
- 407 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 22:07:05.75 ID:gBS6mhz7.net]
- 結局のところ、末尾再帰でもなければ効率悪いコードしか吐かないから再帰で書くのはパフォーマンス要らんところだなぁ。
うちの場合は、パフォーマンスを上げるのが主目的であることが多いから難読性なんて肥やしにもならん。
- 408 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 22:07:51.27 ID:gBS6mhz7.net]
- >>381
げげ。
- 409 名前:デフォルトの名無しさん [2015/06/26(金) 23:13:37.04 ID:3MIHB1Go.net]
- 一昨日Cを勉強し始めたにわかなのですが
ttp://9cguide.appspot.com/13-q.html#S2 このサイトの 2-1 のプログラムについてわからないところがあります。 int i,sum = 0,avg; とありますがこれだとsumに0を代入して初期化することができてないのではないでしょうか? あらかじめavgに入っていた謎の値がそのままsumに代入されてしまうということではないのですか? もしそうならifの中で配列の合計を正しく求められないと思うのですが... どうかよろしくお願いします。
- 410 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 23:13:49.20 ID:oshtnfFs.net]
- クイックソートの再帰は末尾再帰じゃないですよね?
クイックソートの再帰は末尾再帰じゃないから分かりやすいんですが、 ハノイの塔の再帰はすごい分かりにくい
- 411 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/06/26(金) 23:21:05.76 ID:xjgOsjgG.net]
- >>403
C言語の文法は各演算子の結合の強さを決めており、文法上のあいまいさをなくしている。 int i,sum = 0,avg; のi,sum = 0,avgは、iとsum = 0とavgの3つに分解されて解釈される。
- 412 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/06/26(金) 23:31:03.25 ID:xjgOsjgG.net]
- >>404
再帰はスタックをFILOのように使って処理をしている。 関数呼び出しのときに戻り先と実引数をスタックに格納し、関数から戻る頃にスタックから解放される。 FILOのデータ構造を使えば再帰は非再帰に書き換えられる。
- 413 名前:デフォルトの名無しさん [2015/06/26(金) 23:53:28.51 ID:3MIHB1Go.net]
- >>405
なるほど、納得がいきました。ありがとうございました!
|

|