C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
前
http://echo.2ch.net/test/read.cgi/tech/1487757355/
http://www.geocities.jp/c_cpp_cs/about_c/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
C言語なら俺に聞け 140 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 6f8c-8ulf)
2017/05/11(木) 22:20:03.99ID:cn414UR90453デフォルトの名無しさん (ワッチョイ 231b-eQak)
2017/06/13(火) 18:10:46.25ID:TlpR08p20454デフォルトの名無しさん (ドコグロ MM13-Hznn)
2017/06/13(火) 19:22:36.04ID:7vUqF+ijM register 変数だって、本当にレジスタに割り当ててるか怪しいもんだ。
455デフォルトの名無しさん (JP 0Ha1-zqzl)
2017/06/13(火) 19:32:28.37ID:fqqPhx3LH 当たり前の話であって怪しくもなんともないんだが
456デフォルトの名無しさん (スププ Sd43-BT4T)
2017/06/13(火) 19:45:37.31ID:+kV5cJp9d Cって関数オブジェクト的な動作ってできるっけ?
457デフォルトの名無しさん (ワッチョイ 236f-aKgA)
2017/06/13(火) 20:05:20.23ID:co8+PZUE0 第一級関数
https://ja.wikipedia.org/wiki/%E7%AC%AC%E4%B8%80%E7%B4%9A%E9%96%A2%E6%95%B0
>CやC++、Pascalなどのプログラミング言語は関数ポインタをサポートしており、データ構造に含めたり他の関数に引数として渡したりすることができる。
>しかし、それらの関数は一般にリフレクションなしではプログラムの実行時に動的に生成することができないため、第一級関数をサポートしているとは見なされていない。
https://ja.wikipedia.org/wiki/%E7%AC%AC%E4%B8%80%E7%B4%9A%E9%96%A2%E6%95%B0
>CやC++、Pascalなどのプログラミング言語は関数ポインタをサポートしており、データ構造に含めたり他の関数に引数として渡したりすることができる。
>しかし、それらの関数は一般にリフレクションなしではプログラムの実行時に動的に生成することができないため、第一級関数をサポートしているとは見なされていない。
458デフォルトの名無しさん (ドコグロ MM13-W6lL)
2017/06/13(火) 20:37:39.64ID:siDT5/O8M >>454
今時ヒントにもしてないだろ
今時ヒントにもしてないだろ
459デフォルトの名無しさん (ワンミングク MMa3-vEzb)
2017/06/13(火) 22:14:31.00ID:fqqtkiftM registerとか、メジャーなコンパイラで同じオプティマイザーを使用するC++では無くなっちゃったしな。
460デフォルトの名無しさん (スププ Sd43-BT4T)
2017/06/13(火) 22:26:08.47ID:+kV5cJp9d >>457
ないってことか。ありがとうございます
ないってことか。ありがとうございます
461デフォルトの名無しさん (ワッチョイ 23ea-kOr2)
2017/06/13(火) 23:50:32.05ID:Vyd7kh0w0 -O3つければ関係ナッシング
-O2でもいいかも
-O2でもいいかも
462デフォルトの名無しさん (ワッチョイ 9511-LnFi)
2017/06/14(水) 02:09:06.53ID:cctIdNvV0 http://i.imgur.com/b3A3YWl.jpg
この(お)がよく分からん
最初の段階でi=j=0だからswapさせても意味なくね?
だったら(お)でiとjずらすのか?
とも思ったが反応なし
教えてくれると嬉しい
この(お)がよく分からん
最初の段階でi=j=0だからswapさせても意味なくね?
だったら(お)でiとjずらすのか?
とも思ったが反応なし
教えてくれると嬉しい
463デフォルトの名無しさん (ワッチョイ 9511-LnFi)
2017/06/14(水) 02:17:07.73ID:cctIdNvV0 自己解決した
464デフォルトの名無しさん (スップ Sd03-+jJi)
2017/06/14(水) 10:41:57.78ID:xDw396a4d 出力変換指定子について教えてください
printf("16進のffを10進に変換すると%dです\n", 0xff);
実行結果→16進のffを10進に変換すると15です
%dなどの出力変換指定子というのは、数値を文字列に変換して出力している、という理解でよろしいのでしょうか?
それとも数値を数値のまま、文字列の間に挟み込んで出力してくれている、という理解の方が合っていますでしょうか?
printf("16進のffを10進に変換すると%dです\n", 0xff);
実行結果→16進のffを10進に変換すると15です
%dなどの出力変換指定子というのは、数値を文字列に変換して出力している、という理解でよろしいのでしょうか?
それとも数値を数値のまま、文字列の間に挟み込んで出力してくれている、という理解の方が合っていますでしょうか?
465デフォルトの名無しさん (ワッチョイ 850d-OlK+)
2017/06/14(水) 11:28:08.77ID:cB3KRwiX0 前者
466デフォルトの名無しさん (ワッチョイ 0ddb-iuPl)
2017/06/14(水) 11:36:10.60ID:H04nBmO80 http://linuxjm.osdn.jp/html/LDP_man-pages/man3/printf.3.html
%dは文字列に変換する
15じゃなく255になるかと
数値のままってのがよくわからんけど
printf( "%c", 0x41);
ならほとんどの処理系で大文字Aが表示される
%cでcharのビット数より上位のビットが
立っていた場合の挙動は知らん
%dは文字列に変換する
15じゃなく255になるかと
数値のままってのがよくわからんけど
printf( "%c", 0x41);
ならほとんどの処理系で大文字Aが表示される
%cでcharのビット数より上位のビットが
立っていた場合の挙動は知らん
467デフォルトの名無しさん (ワッチョイ 0ddb-iuPl)
2017/06/14(水) 11:37:07.78ID:H04nBmO80 失礼しますた
468デフォルトの名無しさん (JP 0Ha1-zqzl)
2017/06/14(水) 11:38:27.87ID:iafztWleH469デフォルトの名無しさん (ワンミングク MMa3-E03C)
2017/06/14(水) 12:41:52.28ID:Xahf6/YZM470デフォルトの名無しさん (ドコグロ MM13-Hznn)
2017/06/14(水) 12:49:16.05ID:jUBU+j0AM471デフォルトの名無しさん (ワンミングク MMa3-E03C)
2017/06/14(水) 12:57:53.53ID:Xahf6/YZM >>470
符合が付いているから255じゃない。で466のレスに繋がる(^_^)ノ
符合が付いているから255じゃない。で466のレスに繋がる(^_^)ノ
472デフォルトの名無しさん (ワッチョイ 850d-OlK+)
2017/06/14(水) 12:58:00.19ID:cB3KRwiX0 符号付で -1 とみなし、そこから符号を維持したまま拡張して引数に詰む
引数を引っ張り出して 符号付評価で値を文字化の結果 "-1 "
(char 型変数に 0xff を入れてて、それを printf に渡したケース)
ところでリテラルの 0xff が符号付か否かは何か規定あったっけ?
引数を引っ張り出して 符号付評価で値を文字化の結果 "-1 "
(char 型変数に 0xff を入れてて、それを printf に渡したケース)
ところでリテラルの 0xff が符号付か否かは何か規定あったっけ?
473デフォルトの名無しさん (ドコグロ MM13-Hznn)
2017/06/14(水) 13:30:59.38ID:jUBU+j0AM474デフォルトの名無しさん (ワッチョイ 850d-OlK+)
2017/06/14(水) 13:41:28.06ID:cB3KRwiX0475デフォルトの名無しさん (ワッチョイ 859a-ryUj)
2017/06/14(水) 18:52:36.33ID:ROBFB8K40 0xffの型はintだよ
476デフォルトの名無しさん (ワッチョイ 859a-ryUj)
2017/06/14(水) 18:54:17.69ID:ROBFB8K40 int a = 255;
の時に、aが-1になったら不便でしょ?
の時に、aが-1になったら不便でしょ?
477デフォルトの名無しさん (ワッチョイ 859a-ryUj)
2017/06/14(水) 18:56:15.18ID:ROBFB8K40 int a = (signed char)255;
の場合は-1になる
の場合は-1になる
478デフォルトの名無しさん (ワッチョイ d511-D9zB)
2017/06/14(水) 19:07:02.19ID:wXdIbuq80 比較演算子の左辺 右辺 でやらかしそうだ・・・
479デフォルトの名無しさん (ドコグロ MM13-Hznn)
2017/06/14(水) 19:25:17.22ID:jUBU+j0AM481デフォルトの名無しさん (ワッチョイ 859a-ryUj)
2017/06/14(水) 21:51:54.69ID:ROBFB8K40 リテラルが無条件でintなわけじゃない
intで表現出来る範囲はint
intを越えた場合には基本的には表現出来る最小の型になる
u, l, ul, ll, ullなどのサフィックスで明示的に変更も可能
サフィックスで作れない型はキャストして作る
intで表現出来る範囲はint
intを越えた場合には基本的には表現出来る最小の型になる
u, l, ul, ll, ullなどのサフィックスで明示的に変更も可能
サフィックスで作れない型はキャストして作る
482デフォルトの名無しさん (ワッチョイ bb11-3r0c)
2017/06/15(木) 03:30:56.19ID:foJhra+T0 数値リテラルはこの辺参照
www.bohyoh.com/CandCPP/FAQ/FAQ00074.html
あと、-100とかは数値リテラル100と単項-となることに注意
www.bohyoh.com/CandCPP/FAQ/FAQ00074.html
あと、-100とかは数値リテラル100と単項-となることに注意
483デフォルトの名無しさん (ドコグロ MMda-C/u3)
2017/06/15(木) 09:30:50.85ID:dX1k+/c2M >>482
表が分かりにくすぎる。
表が分かりにくすぎる。
484464 (スッップ Sdda-2SNu)
2017/06/16(金) 13:48:41.24ID:6HI1EFfUd485デフォルトの名無しさん (スッップ Sdda-2SNu)
2017/06/16(金) 13:50:22.93ID:6HI1EFfUd >>481
ulって書く人とluって書く人がいますがどちらが正しいのですか?
ulって書く人とluって書く人がいますがどちらが正しいのですか?
486デフォルトの名無しさん (アウアウカー Sa33-yC4D)
2017/06/16(金) 14:04:02.57ID:ZbWJ164Ea どちらも正しいです
487デフォルトの名無しさん (スッップ Sdda-2SNu)
2017/06/16(金) 14:10:39.42ID:5SN0StmUd >>486
ありがとうございます
ありがとうございます
488デフォルトの名無しさん (ワッチョイ aea2-2WTa)
2017/06/16(金) 16:33:55.37ID:lEbqssrF0 QZ潜伏スレッド
489デフォルトの名無しさん (オイコラミネオ MMe6-yBMi)
2017/06/16(金) 17:03:31.61ID:15uCJDWTM switch(c)
case no:
これで、ケースnoに入った際に、もう一度switch文を繰り返す方法はありませんか?
goto文使わないと無理ですかね?
case no:
これで、ケースnoに入った際に、もう一度switch文を繰り返す方法はありませんか?
goto文使わないと無理ですかね?
490片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdda-adb9)
2017/06/16(金) 17:06:02.86ID:qjls6Rocd491デフォルトの名無しさん (オイコラミネオ MMe6-yBMi)
2017/06/16(金) 18:55:58.83ID:OzysmJdyM >>490
ありがとうございます
case yes:
ほにゃらら
case no:
break;
yesの場合もbreakしたいのですが、noに流れさせてbreakするのと、yeaにbreakも書くのとどちらがいいんですかね?
ありがとうございます
case yes:
ほにゃらら
case no:
break;
yesの場合もbreakしたいのですが、noに流れさせてbreakするのと、yeaにbreakも書くのとどちらがいいんですかね?
492デフォルトの名無しさん (ワッチョイ 8b9a-FPX1)
2017/06/16(金) 19:13:28.04ID:exN5gWxV0 お好きなように
caseはbreakする事がほとんどなので、コードを読むときにbreakがあると勘違いしないように、ほにゃららの後とcase no:の後の両方にコメントを忘れずに
caseはbreakする事がほとんどなので、コードを読むときにbreakがあると勘違いしないように、ほにゃららの後とcase no:の後の両方にコメントを忘れずに
493デフォルトの名無しさん (スッップ Sdda-2SNu)
2017/06/16(金) 22:34:26.38ID:jRm/huKjd 変換仕様とデータ型との関係について質問させてください
例
int a;
scanf("%c", &a);
printf("%c\n", a );
考え方として、intと%cのどちらが優先されるでしょうか?
例
int a;
scanf("%c", &a);
printf("%c\n", a );
考え方として、intと%cのどちらが優先されるでしょうか?
494片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdda-adb9)
2017/06/16(金) 22:41:33.61ID:qjls6Rocd495デフォルトの名無しさん (ワッチョイ 8b9a-FPX1)
2017/06/16(金) 23:09:12.38ID:exN5gWxV0 >>493
scanfの方は、&a を charへのポインタとして処理をする
結果は環境依存
printfも基本的には書式と引数が合っている必要があるが、intより小さい引数は全ていったんintに変換されてからコールされるので、この場合は問題なし
scanfの方は、&a を charへのポインタとして処理をする
結果は環境依存
printfも基本的には書式と引数が合っている必要があるが、intより小さい引数は全ていったんintに変換されてからコールされるので、この場合は問題なし
496493 (スッップ Sdda-2SNu)
2017/06/16(金) 23:37:22.59ID:jRm/huKjd497デフォルトの名無しさん (ワッチョイ aea2-2WTa)
2017/06/17(土) 03:37:57.37ID:O3DVEcmT0 さっきからここQZ自演だらけだぞ
498デフォルトの名無しさん (ワッチョイ 8b9a-FPX1)
2017/06/17(土) 05:36:36.60ID:4Gyw35tF0 QZとは?
499デフォルトの名無しさん (ワッチョイ e36d-FyNN)
2017/06/17(土) 12:08:22.44ID:ir1eTLN60500493 (スップ Sd7a-2SNu)
2017/06/17(土) 16:45:24.10ID:Znj/bctpd501デフォルトの名無しさん (ワッチョイ aea2-2WTa)
2017/06/17(土) 19:52:46.57ID:O3DVEcmT0 QZ怒りの自画自賛ww
本当はマ気取りの無職無能のおっさん
誰にも相手されないから自演で賞賛してる
本当はマ気取りの無職無能のおっさん
誰にも相手されないから自演で賞賛してる
502デフォルトの名無しさん (ワッチョイ aea2-2WTa)
2017/06/17(土) 19:53:20.24ID:O3DVEcmT0 こういう自画自賛してるあたり
自演がバレバレ
自演がバレバレ
503片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdda-adb9)
2017/06/17(土) 20:07:29.95ID:mM98wL1Bd ここに書き込む前にマニュアル見ろよ。
504デフォルトの名無しさん (ワッチョイ aea2-2WTa)
2017/06/17(土) 21:04:59.42ID:O3DVEcmT0 老害無職QZはきえろ
505デフォルトの名無しさん (オイコラミネオ MMe6-yBMi)
2017/06/20(火) 17:20:58.36ID:En99E4tcM 自作関数でファイルオープンする際に、ファイルが存在しなかったらその関数を強制終了したいのですが、どうすればいいんですか?
exit(0)を使うとプログラムごと強制終了されてしまいますよね?
exit(0)を使うとプログラムごと強制終了されてしまいますよね?
506デフォルトの名無しさん (オイコラミネオ MMe6-yBMi)
2017/06/20(火) 17:24:57.70ID:En99E4tcM exit(-1)でした
507デフォルトの名無しさん (ワッチョイ 8b0d-VgqF)
2017/06/20(火) 17:35:35.16ID:mOitPqgi0 自作関数の戻りの型を void にしてるならしかるべき場所で
return ;
て書くだけ
return ;
て書くだけ
508デフォルトの名無しさん (オイコラミネオ MMe6-yBMi)
2017/06/20(火) 17:45:00.45ID:YsGmXvJhM509片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdda-adb9)
2017/06/20(火) 17:59:48.83ID:RGtVeD1Gd printf("エラーが発生したんだぜ、この野郎。やんのか?\n");
510デフォルトの名無しさん (ワッチョイ 4fe3-yC+1)
2017/06/20(火) 18:12:33.50ID:hyzgnXlk0 紙のメモ用紙に書き込むサブルーチン作って、そいつにやらせたらどうだろう
511デフォルトの名無しさん (ワッチョイ 8b9a-FPX1)
2017/06/20(火) 18:16:22.54ID:3WBJr6kg0512デフォルトの名無しさん (ワッチョイ 4fdb-hAah)
2017/06/20(火) 18:39:43.32ID:tAZ0INkH0 言語関係無いな
513デフォルトの名無しさん (ワッチョイ b311-2WTa)
2017/06/20(火) 18:48:54.06ID:RHsT5Eol0 >>508
目的が変わっている
自作関数でファイルオープンする際に、ファイルが存在しなかったらその関数を強制終了したい
↓↓↓↓↓↓↓↓↓↓
自作関数でファイルオープンする際に、ファイルが存在しなかったらその旨を通達して抜けたい
戻りの型を int にして 成功は 0 失敗はそれ以外のエラーコードにして戻る
ポインタでエラーコードを指す引数受けて、その指し先に値を渡す
(errorno 等のグローバル変数でエラーを伝える)
呼び出し元のほうでエラーの有無で分岐
目的が変わっている
自作関数でファイルオープンする際に、ファイルが存在しなかったらその関数を強制終了したい
↓↓↓↓↓↓↓↓↓↓
自作関数でファイルオープンする際に、ファイルが存在しなかったらその旨を通達して抜けたい
戻りの型を int にして 成功は 0 失敗はそれ以外のエラーコードにして戻る
ポインタでエラーコードを指す引数受けて、その指し先に値を渡す
(errorno 等のグローバル変数でエラーを伝える)
呼び出し元のほうでエラーの有無で分岐
514デフォルトの名無しさん (アウアウイー Saeb-yC+1)
2017/06/20(火) 22:46:25.81ID:bX2tlMgna ちょっと直接C言語に関係ない話なのですが、
コマンドプロンプトから、標準入力からデータを受け取る必要のある
Cのプログラムを実行する際、「<」を使ってファイルから入力しています。
あるデータファイルのショートカットファイルから「<」を使って
データファイルのデータを入力するにはどうしたらいいでしょうか?
コマンドプロンプトから、標準入力からデータを受け取る必要のある
Cのプログラムを実行する際、「<」を使ってファイルから入力しています。
あるデータファイルのショートカットファイルから「<」を使って
データファイルのデータを入力するにはどうしたらいいでしょうか?
515デフォルトの名無しさん (ドコグロ MM32-rl9t)
2017/06/21(水) 06:56:18.44ID:tmnPHhmOM516デフォルトの名無しさん (ワッチョイ 4fdb-hAah)
2017/06/21(水) 11:47:59.41ID:x++JJuQ30517デフォルトの名無しさん (ワッチョイ 8b0d-VgqF)
2017/06/21(水) 12:03:23.32ID:P8lmP+eo0 ショートカットファイルということは windows の話かねぇ?
渡ってきてる .lnk ファイルの中身から本当のパス文字列を知って
さらにその指し先のファイルを標準入力に流す なんてことが
コンマンドラインシェルはやらんだろうな
渡ってきてる .lnk ファイルの中身から本当のパス文字列を知って
さらにその指し先のファイルを標準入力に流す なんてことが
コンマンドラインシェルはやらんだろうな
518デフォルトの名無しさん (ワッチョイ 3a1b-iuF1)
2017/06/21(水) 14:51:27.68ID:mT0xXfH20 入力を受け取るコマンドがやればいい
519デフォルトの名無しさん (ワッチョイ aea2-2WTa)
2017/06/21(水) 22:27:31.29ID:7+kf0Fyw0 またQZがほざいてる
520デフォルトの名無しさん (ワッチョイ 576f-dFnT)
2017/06/22(木) 13:44:42.49ID:LmRn3xN/0 ショートカットファイルをリダイレクトしても
単に中身を標準入力として読み取るだけで、
解釈するわけじゃない
単に中身を標準入力として読み取るだけで、
解釈するわけじゃない
521デフォルトの名無しさん (JP 0H3f-ZLad)
2017/06/22(木) 13:46:53.43ID:lDx6Yk3FH 初心者です
構造体の使い回しができないというのは、どういう意味ですか?
structがない場合です
構造体の使い回しができないというのは、どういう意味ですか?
structがない場合です
522デフォルトの名無しさん (ドコグロ MMdf-7Pwj)
2017/06/22(木) 14:03:59.21ID:l/KIobDzM523デフォルトの名無しさん (ワッチョイ 7f6c-ZLad)
2017/06/22(木) 15:01:01.41ID:nVwUJlKa0 >>521
構造体の使いまわしはできるよ
構造体の使いまわしはできるよ
524デフォルトの名無しさん (ドコグロ MMdf-6no4)
2017/06/22(木) 15:16:04.77ID:iuy16AyXM struct のない構造体は難しいな。
自分で実装するのかな?
自分で実装するのかな?
525デフォルトの名無しさん (ワッチョイ d7c1-NIhq)
2017/06/22(木) 16:34:33.27ID:6ZKlzltP0 すいません初学者ですが質問です
#include<stdio.h>
double add(double i,double j){return i+j;}
double sub(double i,double j){return i-j;}
double mul(double i,double j){return i*j;}
double div(double i,double j)
{if(j!=0.0) return i/j; else return 0.0;}
int main(void){
double a=39.0,b=12.0;
double (*func)(double x,double y);
func=add;
printf("add:%f\n",(*func)(a,b));
func=sub;
printf("sub:%f\n",(*func)(a,b));
func=mul;
printf("mul:%f\n",(*func)(a,b));
func=div;
printf("div:%f\n",(*func)(a,b));
return 0;
}
8行目の(*fanc)の意味が解りません
例えばfunc=addで代入すると(double *add(double i,double j){return i+j;})(a,b)になるんですか?
(double add(double i,double j){return i+j;})(a,b)になってadd(double i,double j){return i+j;}の部分で
プロトタイプ宣言が呼び出されるからおkなんですか?そうなると(*fanc)の*の意味が解らなくなります。
ちょっと、頭が混乱してて訳の解らない文章になってるかもしれませんが上記プログラムで何故スムーズに行くのかがいまいちよく解りません
#include<stdio.h>
double add(double i,double j){return i+j;}
double sub(double i,double j){return i-j;}
double mul(double i,double j){return i*j;}
double div(double i,double j)
{if(j!=0.0) return i/j; else return 0.0;}
int main(void){
double a=39.0,b=12.0;
double (*func)(double x,double y);
func=add;
printf("add:%f\n",(*func)(a,b));
func=sub;
printf("sub:%f\n",(*func)(a,b));
func=mul;
printf("mul:%f\n",(*func)(a,b));
func=div;
printf("div:%f\n",(*func)(a,b));
return 0;
}
8行目の(*fanc)の意味が解りません
例えばfunc=addで代入すると(double *add(double i,double j){return i+j;})(a,b)になるんですか?
(double add(double i,double j){return i+j;})(a,b)になってadd(double i,double j){return i+j;}の部分で
プロトタイプ宣言が呼び出されるからおkなんですか?そうなると(*fanc)の*の意味が解らなくなります。
ちょっと、頭が混乱してて訳の解らない文章になってるかもしれませんが上記プログラムで何故スムーズに行くのかがいまいちよく解りません
526デフォルトの名無しさん (ワッチョイ 574b-EHt8)
2017/06/22(木) 16:39:23.60ID:XYYNYBrF0527デフォルトの名無しさん (ワッチョイ d7c1-NIhq)
2017/06/22(木) 16:40:28.01ID:6ZKlzltP0 もうちょっと言うと8行目の*がポインタ宣言として何でfuncにaddとかmulとか代入すると関数を参照できるのかよく解りません
*が無いとコンパイラからエラーを指摘されるんですが*がなくても関数のプロトタイプ宣言と同じ形になるのに関数が呼び出されないのが納得いきません
*が無いとコンパイラからエラーを指摘されるんですが*がなくても関数のプロトタイプ宣言と同じ形になるのに関数が呼び出されないのが納得いきません
528デフォルトの名無しさん (ワッチョイ d7c1-NIhq)
2017/06/22(木) 16:42:15.27ID:6ZKlzltP0 >>526
うーん、なんていうか普通だとしてもなんか納得できないって言うか理屈の順序がわからないというか
うーん、なんていうか普通だとしてもなんか納得できないって言うか理屈の順序がわからないというか
529デフォルトの名無しさん (ワッチョイ 170d-NIhq)
2017/06/22(木) 16:45:03.29ID:LDtj9GzU0 double (*func)(double,doube);
[double を 2つ受けて double を返す関数] の場所を覚えるための変数 が func
プロトタイプ宣言ではなく 長ったらしいけど変数宣言 int *func; と本質的に同じ
[double を 2つ受けて double を返す関数] の場所を覚えるための変数 が func
プロトタイプ宣言ではなく 長ったらしいけど変数宣言 int *func; と本質的に同じ
530デフォルトの名無しさん (ワッチョイ d7c1-NIhq)
2017/06/22(木) 17:05:19.55ID:6ZKlzltP0 >>529
でもint *fancの場合だとfanc=&a見たいに&をつけてアドレスを入れるんじゃないですか?
この場合&が省略されてもいいのは何でですか?
代入もaddとかsubと短くなってますけど
いつadd=double add(double i,double j){return i+j;}になったんでしょうか?
理解力や理解度が低いのもあると思いますがいまいちよく解りません・・・
でもint *fancの場合だとfanc=&a見たいに&をつけてアドレスを入れるんじゃないですか?
この場合&が省略されてもいいのは何でですか?
代入もaddとかsubと短くなってますけど
いつadd=double add(double i,double j){return i+j;}になったんでしょうか?
理解力や理解度が低いのもあると思いますがいまいちよく解りません・・・
531デフォルトの名無しさん (ワッチョイ 170d-NIhq)
2017/06/22(木) 17:19:00.14ID:LDtj9GzU0 >>530
前半の疑問
関数へのポインタ変数 func に 関数を代入する際の記述に限り & を省略できる
という文法にしちゃった そしてそう記述するのが古くからの慣わし
関数宣言 double add(double i, double j);
関数の実装 double add(double i, double j) { return i+j; }
宣言した関数の呼び出し add(i,j);
宣言した関数のポインタを得る add (もしくは &add でも同じ)
前半の疑問
関数へのポインタ変数 func に 関数を代入する際の記述に限り & を省略できる
という文法にしちゃった そしてそう記述するのが古くからの慣わし
関数宣言 double add(double i, double j);
関数の実装 double add(double i, double j) { return i+j; }
宣言した関数の呼び出し add(i,j);
宣言した関数のポインタを得る add (もしくは &add でも同じ)
532デフォルトの名無しさん (ワッチョイ d7c1-NIhq)
2017/06/22(木) 17:46:27.25ID:6ZKlzltP0 >>531
> 関数へのポインタ変数 func に 関数を代入する際の記述に限り & を省略できる
> 宣言した関数のポインタを得る add (もしくは &add でも同じ)
凄く頭がすっきりしました。コンパイルで実行してみてもaddと%addどちらでも通りました。
printfの(*fanc)も&addの実態を参照してるわけですね。
ありがとうございました
> 関数へのポインタ変数 func に 関数を代入する際の記述に限り & を省略できる
> 宣言した関数のポインタを得る add (もしくは &add でも同じ)
凄く頭がすっきりしました。コンパイルで実行してみてもaddと%addどちらでも通りました。
printfの(*fanc)も&addの実態を参照してるわけですね。
ありがとうございました
533デフォルトの名無しさん (ワッチョイ 9fd7-M5hL)
2017/06/22(木) 17:46:30.59ID:dMWz8j2D0 >>530
8行目 double (*func)(double x,double y); は変数funcの宣言
型は double(*)(double,double) の関数ポインタ
変数funcに各関数のアドレスを代入して呼び出してる
代入される関数には&を付けても付けなくても動作は同じ
8行目 double (*func)(double x,double y); は変数funcの宣言
型は double(*)(double,double) の関数ポインタ
変数funcに各関数のアドレスを代入して呼び出してる
代入される関数には&を付けても付けなくても動作は同じ
534デフォルトの名無しさん (ワッチョイ d7c1-NIhq)
2017/06/22(木) 17:47:38.20ID:6ZKlzltP0 >>533
ありがとうございます!ここ数日悩んでたんですがすっきりしました。
ありがとうございます!ここ数日悩んでたんですがすっきりしました。
535デフォルトの名無しさん (ワッチョイ 9fd7-M5hL)
2017/06/22(木) 18:07:18.42ID:dMWz8j2D0536デフォルトの名無しさん (ワッチョイ d7c1-NIhq)
2017/06/22(木) 18:33:38.45ID:6ZKlzltP0 >>535
それは
1。ポインタ側から見たら*fancになってfancの実体をみている
2.fanc=addと代入されているんだからfancと書かれていてもaddという変数(代入済み)に読み替えて実体を見ている
という意味で同じだという捉え方で大丈夫でしょうか?
それは
1。ポインタ側から見たら*fancになってfancの実体をみている
2.fanc=addと代入されているんだからfancと書かれていてもaddという変数(代入済み)に読み替えて実体を見ている
という意味で同じだという捉え方で大丈夫でしょうか?
537デフォルトの名無しさん (ワッチョイ d711-NIhq)
2017/06/22(木) 18:39:12.10ID:9RPI8PPS0 関数へのポインタを得るのに & を省略できるのと同じように
ポインタの指し先の関数を呼び出すのに
(*func)(引数) と書いても func(引数) と書いても同じ という文法にしちゃった
※
Cは短く書けるならそっちを使う って歴史なので func(引数) って書くことが多い
ポインタの指し先の関数を呼び出すのに
(*func)(引数) と書いても func(引数) と書いても同じ という文法にしちゃった
※
Cは短く書けるならそっちを使う って歴史なので func(引数) って書くことが多い
538デフォルトの名無しさん (ワッチョイ d7c1-NIhq)
2017/06/22(木) 18:42:56.92ID:6ZKlzltP0539デフォルトの名無しさん (ワッチョイ 179a-VrB2)
2017/06/22(木) 18:43:53.42ID:Ep4mqRnU0 >>525
divの中身が気にくわない
divの中身が気にくわない
540デフォルトの名無しさん (ドコグロ MMbf-Stqb)
2017/06/22(木) 19:20:58.14ID:n4zvfmL3M >>531
> 関数へのポインタ変数 func に 関数を代入する際の記述に限り & を省略できる
しれっと嘘書くなよ
代入関係なく関数名だけ(後ろにカッコをつけない)なら関数へのポインタとして扱う
比較とかでも使える
> 関数へのポインタ変数 func に 関数を代入する際の記述に限り & を省略できる
しれっと嘘書くなよ
代入関係なく関数名だけ(後ろにカッコをつけない)なら関数へのポインタとして扱う
比較とかでも使える
541デフォルトの名無しさん (ワッチョイ d711-NIhq)
2017/06/22(木) 19:44:37.36ID:9RPI8PPS0 あ ごめんなさい ごめんなさい ごめんなさい
543デフォルトの名無しさん (ワッチョイ d711-NIhq)
2017/06/22(木) 20:53:54.63ID:9RPI8PPS0 bye
544デフォルトの名無しさん (ワッチョイ 9f1e-6no4)
2017/06/22(木) 21:42:29.54ID:xapmI+EN0 exit(1)
545デフォルトの名無しさん (ワッチョイ d7b6-q+YL)
2017/06/23(金) 00:26:19.17ID:Txr7HE8G0 >>539
俺も最初にそう思った。j != 0.0 て
俺も最初にそう思った。j != 0.0 て
546デフォルトの名無しさん (ワッチョイ ff91-ZLad)
2017/06/23(金) 09:04:15.74ID:pzaENb+m0 浮動小数点の四則演算で例外が起きないようにするには、どこを注意したらいいんだろう
547デフォルトの名無しさん (ブーイモ MM3b-nmmA)
2017/06/23(金) 09:13:50.88ID:OUZ9ZG4GM 普通の設定なら0で割っても例外は起きないよ。Infになるだけ。
Infも計算できる。Inf/InfとかはNaNになったりするけど。
Infも計算できる。Inf/InfとかはNaNになったりするけど。
548デフォルトの名無しさん (ラクッペ MMcb-bZFw)
2017/06/23(金) 09:28:01.22ID:7CKItQkCM 柴田さんの本でアルゴリズム勉強したいんだけど、c言語とjavaどっちがいいんですか?
目的は基本情報技術者試験午後対策と競技プログラミング用です
どっちも読むのがいいのでしょうか?
目的は基本情報技術者試験午後対策と競技プログラミング用です
どっちも読むのがいいのでしょうか?
549デフォルトの名無しさん (ワッチョイ f7db-XubJ)
2017/06/23(金) 10:45:37.79ID:HJ43MjWq0 ここか ここの1に書いてあるスレで
http://mevius.2ch.net/test/read.cgi/tech/1194614600/
http://mevius.2ch.net/test/read.cgi/tech/1194614600/
550デフォルトの名無しさん (ラクッペ MMcb-bZFw)
2017/06/23(金) 12:39:03.49ID:7CKItQkCM プログラマー板で聞いてみます!
551デフォルトの名無しさん (JP 0H3f-ZLad)
2017/06/23(金) 12:40:24.54ID:bga0zZR5H アルゴリズムならC言語かなぁ
理由は、再帰があるから
理由は、再帰があるから
552デフォルトの名無しさん (ラクッペ MMcb-bZFw)
2017/06/23(金) 12:51:15.76ID:7CKItQkCM >>551
ありがとうございます
ありがとうございます
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★5 [BFU★]
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- 【ローソン】ロゴの「L」で誤解生んだコーヒーカップ、デザイン変更へ 在庫使い切る3か月後にリニューアル [ぐれ★]
- 【悲報】SANA、発言撤回拒否 [769931615]
- 米シンクタンク「アメリカは台湾問題で"あいまい戦略"を取っている。高市早苗はこの方針から逸脱している」 [603416639]
- 日本「中国製品買うの辞めます。中国旅行辞めます。」 中国「あぁ、そう…」
- ジャーナリストがテレビで解説「台湾問題は高市総理から言ったのではなく、立憲民主が日本の対応可能能力を暴こうとしたから」 [359572271]
- 「遺体、安倍、会いたい」👈逆から読んでみて [175344491]
- お前らの知能指数教えてや
