- 1 名前:デフォルトの名無しさん mailto:age [2007/07/24(火) 23:17:11 ]
- C言語の入門者向け解説スレです。
・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 16 pc11.2ch.net/test/read.cgi/tech/1184003625/ 教えて欲しいのではなく丸投げしたいならこちらへ C/C++の宿題を片付けます 93代目 pc11.2ch.net/test/read.cgi/tech/1184506311/
- 272 名前:241 mailto:sage [2007/07/31(火) 21:13:26 ]
- >>243
サンクス。やってみます。
- 273 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 22:29:54 ]
- >>266>>268
簡潔かつ分かりやすい説明ありがとうございました。 なるほど。
- 274 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 23:18:39 ]
- >>272
???
- 275 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:00:20 ]
- 質問
001 C言語によるプログラムの一般的な作成手順を述べよ。 002 C言語のプログラムのソースファイルの拡張子は何か。 003 ソースファイルからオブジェクトファイルを作ることを何というか。 004 オブジェクトファイルから実行ファイルを作ることを何というか。 005 講義で使ったコンパイラの名前を答えよ。 006 UNIX(LINUX)では実行ファイルの名前はどのようになるか。 007 デバッグとは何か。 008 C言語でプログラムに使う文字はどういうものか。 009 C言語の標準規格はどう呼ばれるか。 010 もっとも短い実行できるC言語のソースを書け。 011 main関数とは何か。 012 main関数の型は何か。 013 main関数の戻り値はどうなるか。 014 グローバル(大域)変数とローカル(局所)変数の違いを答えよ。 015 静的変数はどういうときに使われるか。 016 変数の基本データ型をいくつか答えよ。 017 初期値が1である整数変数iの宣言は。 018 変数のアドレスとは何か。 019 変数のアドレスを知るにはどうするか。 020 講義で使ったシステムの整数の範囲を答えよ。 021 配列(変数)とは何か。 022 100個宣言した配列(変数)の添え字の範囲は。
- 276 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:02:02 ]
- 023 配列(変数)の初期値はどのように設定するか。
024 2次元配列はどのように宣言するか。 025 2次元配列はどのように並んでいるか。 026 構造体とは何か。 027 typedefとstructの役割はどう違うか。 028 #includeとは何か。 029 #include <stdio.h>の<>の意味は。 030 ヘッダファイルとは何か。 031 ヘッダファイルの拡張子は何か。 032 コメントとは何か。 033 コメントをソースに記入するのにはどうするか。 034 代入i=1の式としての値は何になるか。 035 整数変数iを1増やすのにどういう方法があるか。 036 printf関数は何をする関数か。 037 printf関数のfの由来は。 038 printf関数で改行させたいときには何を使うか。 039 printf関数で文字配列sの文字列を表示させたいときにはどう書くか。 040 整数変数iの値が1のときprintf("%d",--i);printf("%d",i++);でどういう表示がされるか。 041 整数変数dにscanf関数で整数をキーボード入力させる文を書け。 042 文字配列にscanf関数でキーボード入力するとき気をつけるべきことは。 043 文字リテラル'A'の整数としての値は。 044 'c'-'C'の値はいくらになるか。
- 277 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:03:22 ]
- 045 文字の種類を判別するときにインクルードするヘッダファイルの名前は。
046 文字列と'\0'の関係は。 047 strcmp関数を使うときにインクルードするヘッダファイルの名前は。 048 文字列の長さを知るために使う関数は。 049 1*2+3の値はいくらになるか。 050 10%(-3)の値はいくらになるか。 051 ビット演算子の例をあげよ。 052 27&15の値はいくらになるか。 053 27|15の値はいくらになるか。 054 31>>2の値はいくらになるか。 055 int i,j;と宣言されているとき、&i-&jの絶対値はいくらか。 056 整数変数aの値が12から19までのときだけ「TEEN」の4文字を表示する文を書け。 057 (i>=0)?i:(-i)は何をする式か。 058 NULLとは何か。 059 for(i=0;i<10;i++)printf("!");という文では感嘆符は何回表示されるか。 060 for(i=10;i>-10;--i)if(i)printf("o");ではoは何文字表示されるか。 061 i=10;while(i){printf("+");--i;}では+は何文字表示されるか。 062 breakはfor,do,whileではどのような意味があるか。 063 continueはfor,do,whileではどのような意味があるか。 064 switch文ではcaseの最後にbreak文が必要なのはなぜか。 065 switch文でdefault:はどういう意味を持つか。 066 if(i==0){}else{printf("A");}を出来るだけ簡単に書き直せ。 067 関数のプロトタイプ宣言はなぜ必要か。 068 関数の値を返すのに使う予約語は。 069 ファイルを扱うときにインクルードするヘッダファイルの名前は。 070 ファイルを扱うときに使う構造体の型の名前は。
- 278 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:03:30 ]
- >>53
- 279 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:04:26 ]
- 071 fopen関数の戻り値は何か。
072 fopen関数が実行に失敗するとどうなるか。 073 fprintf関数とprintf関数の引数の違いは。 074 fscanf関数で1行読み込むときの注意は。 075 getc関数はどのような引数と戻り値を持つ関数か。 076 EOFとは何か。 077 cが整数変数、fpが正しい状態でwhile(EOF!=(c=getc(fp)))printf("%c",c);を実行すると結果は。 078 fflush関数は何をする関数か。 079 fclose関数が実行に失敗するとどうなるか。 080 標準入力とは何か。 081 標準出力とは何か。 082 ファイル入出力でどのようなエラーが考えられるか。 083 マルチタスク環境でファイルをロックするとはどういうことか。 084 rand関数を扱うときにインクルードするヘッダファイルの名前は。 085 rand関数の返す整数の値はどのような名前で呼ばれるか。 086 擬似乱数のシードとは何か。 087 srand関数はrand関数とどのような関係にあるか。 088 32ビットのint型は10進数で何桁の精度になるか。
- 280 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:05:43 ]
- 089 float型は十進数でほぼ何桁の精度になるか。
090 double型は十進数でほぼ何桁の精度になるか。 091 プログラムの処理の手順を一般に何と呼ぶか。 092 自分自身を呼び出すプログラムの手法を何というか。 093 キュー(待ち行列)とはどのようなものか。 094 スタックとはどのようなものか。 095 オーバーフローとは何か。 096 アンダーフローとは何か。 097 いわゆるセグメンテーションフォルトで中断した後にできるファイルを一般に何というか。 098 C言語を作ったのは誰か。 099 C言語の祖先に当たるプログラム言語は。 100 C言語はどういう種類のプログラム言語か。
- 281 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:07:06 ]
- >>53-56 を読んだら氏ね
- 282 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:09:33 ]
- 読みましたよ。同じですね。答え教えて。
- 283 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:12:40 ]
- >>282
100回ググれ。全ての答えはそこにある。
- 284 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:13:14 ]
- 何しに来たの?
死ねよマジで
- 285 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:20:20 ]
- なにしにって答え聞きに。
- 286 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:21:54 ]
- 殺伐中のところお邪魔しますよ
問題:指定したテキストを、タブをスペースに置き換えて別ファイルとしてコピーする #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { FILE *from, *to; char ch; int tab, count=0; if(argc!=3) { printf("<test> <コピー元> <コピー先>\n"); exit(1); } if( (from=fopen(argv[1], "r")) ==NULL) { printf("コピー元ファイル %s が開けません。" , argv[1]); exit(1); } if( (to=fopen(argv[2], "w")) ==NULL) { printf("コピー先ファイル %s が開けません。" , argv[2]); exit(1); }
- 287 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:23:58 ]
-
while(!feof(from)) { ch = fgetc(from); if(ch=='\t') { for(tab=count; tab<8; tab++) fputc(' ' , to); count=0; } else { if(!feof(from)) fputc(ch, to); count++; //※ if(count==8 || ch=='\n') count=0; //※ } } fclose(from); fclose(to); return 0; } /* ここまで */ ※の部分は何のために何の処理をしているんだろう
- 288 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:25:39 ]
- >>285
学校(がっこう)の先生(せんせい)か、パパやママにきいてみよう!
- 289 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:26:54 ]
- 先生は教えてくれない。親は使えない
- 290 名前:286-287 mailto:sage [2007/08/01(水) 00:27:22 ]
- 見づらくなってしまった…すいません
あと、 tab<8 と count==8 の8は何の数なんだろう
- 291 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:34:48 ]
- >>290
実行して確認するとかしてみたのか? 「8」はタブ文字を8個のスペースにしてるだけだ。 for文の前後3行を読むだけでわかる。
- 292 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:36:33 ]
- >>291
ということは別に8である必要はないのかな
- 293 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:38:31 ]
- Windowsならデフォルトは8じゃないか?Linuxとかは知らん。
デフォルトって言葉が正しいかどうかは知らんが、メモ帳とかはそうだよな。 ってか、8が何かわからんかったら10にして実行してみろ。
- 294 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:47:45 ]
- なるほど
サントス
- 295 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:55:01 ]
- 俺のはシカト?
- 296 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 01:08:45 ]
- おーい
- 297 名前:デフォルトの名無しさん [2007/08/01(水) 01:46:27 ]
- #include <stdio.h>
main() { static int a[][3] = {{001, 010, 100}, {002, 020, 200}, {003, 030, 300}}; int i, j; for (i=0; i<3; i++) { for (j=0; j<3; j++) { printf("%d\t", a[i][j]); } putchar('\n'); } } このプログラムの実行結果が下のなんですがなぜそうなるかわかりません。 教えてください。 1 8 100 2 16 200 3 24 300
- 298 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 01:50:11 ]
- 頭に0がついてると八進数になるから
- 299 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 01:50:36 ]
- 0から始る場合8進数になるから
- 300 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 01:51:10 ]
- >>297
>{{001, 010, 100}, {002, 020, 200}, {003, 030, 300}} これは0で始まってるから8進法で書かれてる んでprintfでの出力は10進法になってる
- 301 名前:デフォルトの名無しさん [2007/08/01(水) 01:51:16 ]
- #include <stdio.h>
main() { static char input[] = "B1LSWIELTECH1\1\11W\1EE1ELLST?"; int i, c; for (i=0; (c=input[i]) != '\0'; i++) { switch(c) { case 'B' : putchar('A'); continue; case '1' : break; case 1 : while ((c=input[++i]) != '\1' && c != '\0'); case 9 : putchar('T'); case 'E' : case 'L' : continue; default : putchar(c); continue; } putchar(' '); } putchar('\n'); } 実行結果 A SWITCH T ST? A SWITCHから先の動きがわかりません。わかる方教えてください。
- 302 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 01:53:39 ]
- ってちょっと言い方がまずかったな
>{001, 010, 100} たとえばこの部分の001と010が8進法で100は10進法ね
- 303 名前:デフォルトの名無しさん [2007/08/01(水) 01:54:26 ]
- #include <stdio.h>
char input[] = "SSSWILTECH1\1\11W\1WALLMP1"; main() { int i, c; for (i=2; (c=input[i]) != '\0'; i++) { switch(c) { case 'a' : putchar('i'); continue; case '1' : break; case 1 : while ((c=input[++i]) != '\1' && c != '\0'); case 9 : putchar('S'); case 'E' : case 'L' : continue; default : putchar(c); continue; } putchar(' '); } putchar('\n'); } 実行結果 SWITCH SWAMP 同じ感じなんですが、SWITCHから先の動きがわかりません。お願いします。
- 304 名前:297 [2007/08/01(水) 02:00:39 ]
- ありがとうございます
解決しました
- 305 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 02:01:36 ]
- while ((c=input[++i]) != '\1' && c != '\0');
ここで条件が真の間、iが+1ずつされていく。 whileをぬけたらbreakが無いので次のputschar('T')が実行されて・・・ って感じだ。 デバッガあるならステップ実行してみればわかる。 なければwhileを弄れば多少わかる? while ((c=input[++i]) != '\1' && c != '\0')puts("[while中]");
- 306 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 03:28:00 ]
- 自分で考えるための方法を教える必要があるような状況だな。
- 307 名前:デフォルトの名無しさん [2007/08/01(水) 11:32:27 ]
- リンカする前の実行ファイルを起動すると一瞬で消えるんだが何故でしょうか?
- 308 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 11:45:28 ]
- >>307
「リンカする」なんてことは通常できません。 リンクする前なら、それは実行ファイルになっていない筈です。 リンクされた実行ファイルについてなら、GUIを持たないプログラムを GUIからダブルクリックで起動したら終了と同時に表示が消えるのは自明ですね。
- 309 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 11:50:37 ]
- Ctrl-F5で解決する例のあれか
- 310 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 12:29:44 ]
- 昨日のお子様哀れすぎワロタ
- 311 名前:初心者 [2007/08/01(水) 15:14:36 ]
- 構造体の数値データからcsv形式のファイルを作りたいのですが、どうすればいいでしょうか。教えていただけるとありがたいです。
- 312 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 15:24:33 ]
- 構造体のメンバをcsv形式でファイルに書き込め
- 313 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 15:56:39 ]
- C++なら簡単に出来るからC++スレで質問するといいよ^^
- 314 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 15:58:15 ]
- まだ全然初歩のプログラムなのですが、わからないので教えてください。
プログラムファイル 入力データファイル が用意されている。 問題 文字データ中に含まれる文字の種類を調べるプログラムを作成しなさい。 [仕様] ・入力データ件数10件 1件に最大100文字(半角とする) 入力データは、文字型1次元配列(サイズ:101)に格納 ・文字の種類は最大200種(文字型1次元配列使用) ただし、入力した文字中の改行(’¥n’)マークは処理対象外 とする ・文字コード順に並べ替えを行い出力する ・出力設計 1行に最大25文字(文字区切りに1カラム空白) 構成文字(並べ替え済み)を出力する 例 X X X X X X X〜〜X X X X X X X
- 315 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 16:08:34 ]
- >>314
自分がどこまでできてて、どこがわからないのか明確に 丸投げなら宿題スレに C/C++の宿題を片付けます 94代目 pc11.2ch.net/test/read.cgi/tech/1185452895/
- 316 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 17:11:26 ]
- プログラムは既に出来てるように思えた
- 317 名前:デフォルトの名無しさん [2007/08/01(水) 18:41:55 ]
- >>314
です。入力データ、文字種を入力するところまではわかるのですが、どういう処理をすれば入力データに文字データが含まれているのか、また、そのデータを文字コード順に並べる処理がわからないです。アルゴリズムが浮かばなくて悩んでいます。お願いします。
- 318 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 18:47:33 ]
- 文字の種類が200種なんだから、int の配列[200]を用意して
文字種ごとに足していけばよかろう。 まあ文字種そのものは256個あるから[256]作ったほうが楽ではあるが。
- 319 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 19:18:22 ]
- ちょっと今感動してる・・。
一ヶ月前の自分には解らなかった事が解るようになってる。 ニマニマしちゃうよ。
- 320 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 23:36:44 ]
- >>318
回答ありがとうございます。文字種類の配列を用意するのは理解できました。もし int i,n char moji[100],shu[200]で入力しおえて 文字種ごとに足していくにはどのように書けばよいのでしょうかか?
- 321 名前:デフォルトの名無しさん [2007/08/02(木) 00:03:16 ]
- >>320
char shu[256]={0} としたうえで for(i=0;i<100;i++) { shu[moji[i]]++; }
- 322 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 00:25:13 ]
- >>321
素早い回答ありがとうございます。その文字種に含まれた文字はどのようにしたら文字コード順に並び替えられるのですか?
- 323 名前:デフォルトの名無しさん [2007/08/02(木) 00:28:42 ]
- >>322
ちょっと根本的に分かってないみたいだけど 文字コードがインデックスになってるから for(i < 256) { for(j = 0 ; j < shu[i] ; j++){ putchar i } } でおk
- 324 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 06:46:03 ]
- 分布数えソートだな。
- 325 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 08:05:01 ]
- >>323
全然理解してなくて申し訳ないです。 回答ありがとうがざいました。これからプログラム書いてみようと思います。
- 326 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 09:39:43 ]
- プログラムファイルは用意されてたんじゃなかったのかよw
sageは半角でな
- 327 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 09:45:47 ]
- 分布数えソート大好き
- 328 名前:デフォルトの名無しさん [2007/08/02(木) 09:59:24 ]
- 分布数えソートはもっと巧妙だけどな
アイディアは同じ
- 329 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 10:08:09 ]
- Linux環境で半角の円マーク(\)打つのってどうやればいい?
- 330 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 10:08:49 ]
- 英字キーボードで、と言った方が良かったかも
- 331 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 10:17:11 ]
- バックスラッシュと円マークの文字コードは
ASCII コードの範囲内でなら同一。 あとはフォントの問題。 どうしても混在させたいなら、ユニコードで何とかするしかない。 00A5 が円マークだ。 もちろん、エスケープ記号としては使えんがな。
- 332 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 13:38:15 ]
- Linuxでの最長パス名なのですが、#defineされているものに
MAX_PATH とか MAXPATHLEN とかありますが どれを#includeしてどの#defineを使うのが一般的なのでしょうか。 なんかいろいろあってわからなくなった。 教えて下さい。
- 333 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 17:08:43 ]
- Linuxは知らないが、標準Cには<stdio.h>にFILENAME_MAXという定数がある。
- 334 名前:デフォルトの名無しさん [2007/08/03(金) 00:02:15 ]
- int a[3][4];
int b[4]; と宣言した際に a[0] = b; がNGなんですか? C言語の2次元配列は配列の配列と習ったんで aのゼロ番目に大きさ4の配列を入れれると思ったんです。
- 335 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 00:07:29 ]
- 配列の配列と2次元配列は別物だよ
- 336 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 00:17:43 ]
- というか、int a[3], b[3];だったとしても、
a = b; みたいな代入はできない。
- 337 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 00:21:15 ]
- >>336みたいなのが何で出来ないんですか?って質問されたら
言語仕様です。としかいえないよな。 それでもなんで?って聞いてきたら教えるのをあきらめる。
- 338 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 00:30:31 ]
- Cを作った人や、後にコンパイラを実装した人達が
できなくてよいという判断を下したから。
- 339 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 00:47:16 ]
- 配列の代入はできません。
- 340 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 01:01:38 ]
- >>335
規格票では全く同一のものとなっていますが何か?
- 341 名前:デフォルトの名無しさん [2007/08/03(金) 01:08:11 ]
- 配列の配列
配列へのポインタ ポインタの配列 などの細かなこと知らなくても問題ないよ
- 342 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 01:09:38 ]
- いや、それは問題ある。
- 343 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 01:17:23 ]
- 構文上は配列の配列と思っておくと都合がいいけど、
Cでは配列の配列とは別に2次元配列が存在するわけでもないので、 少なくともCでは両者の言葉が区別されることなく使われている。 こう言えばいいか?
- 344 名前:デフォルトの名無しさん [2007/08/03(金) 01:21:08 ]
- >>342
ないよ そんな細かなこと知っててもなんの役にもたたん
- 345 名前:デフォルトの名無しさん [2007/08/03(金) 01:24:34 ]
- int (*a)[10];
って大きさが10のintの配列へのポインタですよね これの配列(大きさ20)はどう宣言すればいいのですか?
- 346 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 01:26:09 ]
- そんなの自分で考えろよ
int (*a)[10][20]; 死ねよ
- 347 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 01:28:43 ]
- >>344
int n[10][10]; を int** に渡せないとか言う人の相手をしなきゃいけない身になってみろ。
- 348 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 01:33:51 ]
- >>346
君が死んだほうがいいような・・・
- 349 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 01:42:50 ]
- 配列は 「変数名の直後に [サイズ] を書く」
ポインタは 「変数名の直前に * を書く」 括弧があろうがこれは変わらない。 それだけ覚えていれば何も迷うことは無い。
- 350 名前:デフォルトの名無しさん [2007/08/03(金) 02:28:56 ]
- >>346
最初の一行、このスレのタイトルからしてお前が来なきゃ良いんじゃね?って 周りに思われていることに気づいた方が良いんじゃね? 自分が嫌うものをわざと見つけて、勝手にその対象物を叩いてイラついている 基地外にしか見えない・・・
- 351 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 02:40:09 ]
- 配列へのポインタの配列が必要になる状況って考え付かないんだけど、どんなの?
- 352 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 02:44:52 ]
- double x y;
scanf("%f%f",&x,&y); で 1.0 1.0 と取り込んだら printf("x y = %f %f\n",x,y); で x y = 0.000000 0.000000 と出力された。 なんで???
- 353 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 02:46:04 ]
- %lf
- 354 名前:352 mailto:sage [2007/08/03(金) 02:48:12 ]
- わいわ…アホや…
- 355 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 03:04:33 ]
- >>351
必要になるならないは問題ではない どう書けるかときいているのです。
- 356 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 03:08:06 ]
- そんなどうでもいいこと気にする前にもっと学ばなきゃいけないことがたくさんあると思うけど。
- 357 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 03:33:49 ]
- わからないならわからないっていえよ
しったかぶってんなよw
- 358 名前:デフォルトの名無しさん [2007/08/03(金) 03:35:56 ]
- 教えられないくせに学べだの説教するやつは痛過ぎ・・・
- 359 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 03:36:37 ]
- >>351
回転行列へのポインタの配列とか。
- 360 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 03:37:26 ]
- あげくのはてには、必要ないだってw
- 361 名前:デフォルトの名無しさん [2007/08/03(金) 03:41:54 ]
- int (*(*(*p[1])[2])[3])();
を3秒以内に理解できるかい?
- 362 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 03:43:06 ]
- そこまですっきりしてると分かりやすい。
- 363 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 03:45:00 ]
- int (*(*p)(int (*)(int (*)[20])))[10];
- 364 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 03:49:20 ]
- それを有効に使ったコード書いてみてくれw
- 365 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 04:07:32 ]
- ごめん、無理。
- 366 名前:デフォルトの名無しさん [2007/08/03(金) 05:42:26 ]
- ・C言語の欠陥
関数アドレスを返す関数において、その関数と同じ型の関数アドレスを 返す型の循環構造を定義できない。 typedef func_t (*func_t)(); // エラー func_t f();
- 367 名前:デフォルトの名無しさん [2007/08/03(金) 05:58:18 ]
- こういう場合は構造体を定義するしかない。
struct _s_t; typedef struct _s_t (*func_t)(); typedef struct _s_t { func_t f; } s_t; s_t f() { s_t s = {f}; printf("f()"); return s; } main () { // f()()()()()(); 本来期待する呼び出し形式 f().f().f().f().f().f(); } 結果: f()f()f()f()f()f()
- 368 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 06:35:56 ]
- それ聞いたことはあるけど、どういう場合に使うの?
- 369 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 07:34:06 ]
- にわかプログラマーは心の狭いやつが多いねぇ
おまけにちょっと噛み付かれたらギャーギャー喚き散らさないと気がすまないらしい
- 370 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 08:12:21 ]
- kmaebashi.com/programmer/pointer.html
- 371 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 08:39:05 ]
- / ̄ ̄\
/ _ノ \ | ( ●)(●) < スレタイ読めないならどっか余所へ行けよ . | (__人__)____ | ` ⌒/ ─' 'ー\ . | /( ○) (○)\ . ヽ / ⌒(n_人__)⌒ \ ヽ |、 ( ヨ | ← にわかプログラマー / `ー─− 厂 / | 、 _ __,,/ \
- 372 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 11:57:59 ]
- >>370
他の解説読んでたけどif文にセミコロンいらないの知らなかった… でもコード見たらちゃんと書けてた (´・ω・`)?? とりあえず気付けてよかった
|

|