[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 10/23 13:11 / Filesize : 242 KB / Number-of Response : 1018
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門編)Part 129



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ではコピペ荒らしは禁止されています

968 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 13:27:04.14 ID:HVhVW7oy.net]
>>953
自己紹介乙

969 名前:デフォルトの名無しさん [2015/08/08(土) 13:43:02.67 ID:Ud96BClW.net]
>>954
こりゃまた、h抜きに負けるとも劣らない古参煽り。

ニワカ乙
って、返すんだっけ? 頭悪そう。

970 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 13:51:25.58 ID:cYx2D4V+.net]
かわいそうな奴...
さすが、にちゃん玄人ですね!

971 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 14:04:41.69 ID:1hj8NI9z.net]
まあなぜhを抜いてるのかを知っている時点でそれなりの年齢のはずなんだけどね
もっと大人にならなきゃいけないよね

972 名前:デフォルトの名無しさん [2015/08/08(土) 14:16:31.72 ID:Ud96BClW.net]
>>956
補集合習ってから出直せと言ったはずだぞ。中学生。

973 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 14:43:13.18 ID:cYx2D4V+.net]
>>958
で、どれとどれが補集合じゃないって言ってるんだ?
書いてみ w

974 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 14:48:59.02 ID:1hj8NI9z.net]
素人の補集合≠玄人
って書いてあるじゃん
なんか低レベルすぎる争いが楽しそうなので混ぜて

975 名前:デフォルトの名無しさん [2015/08/08(土) 14:56:08.54 ID:Ud96BClW.net]
>>959
まだ、習ってないことを無理して理解しなくても良い。

976 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 15:17:48.69 ID:cYx2D4V+.net]
>>960
h抜きしない奴は玄人って言ってるわけじゃないぞ
低レベルの話にもついてこれないなら割り込んでくるなよ...

>>961
はい、逃げた w



977 名前:デフォルトの名無しさん [2015/08/08(土) 15:34:58.60 ID:Ud96BClW.net]
>>962
補集合を知らないことを、そんなに必死でアピールしなくて良いよ。中学生。

978 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 17:48:46.64 ID:cYx2D4V+.net]
>>963
>>959 にレスできないチキン w

979 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 17:55:19.32 ID:Gxm0vaAV.net]
プログラマー目指してる大学生なんですけど、優秀な趣味プログラマーでも
長年仕事でプログラミングしてる平凡なプログラマーに負ける事っていったら
何ですか?

どんだけプログラミングしてても実務で培われるものってあるじゃないですか
そういうのが知りたいです。ちなみに僕は優秀でもなんでもない趣味プログラマですw

980 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 18:03:00.86 ID:1qUf1CZr.net]
このままいつもの人まで出てきてスレを
使いきる気かよ

981 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 18:08:16.54 ID:D0x4pWwH.net]
>>965
ようわからんが仕様と検証と納期に対してどんだけシビアになれるかの違いじゃないの

982 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 18:13:42.89 ID:D0x4pWwH.net]
>>965
併せて工数は予算内に、

ていうか>>948の回答も誰かよろしくなのデス…
パーサを作るときにstrtol()の第1、第2引数のインターフェースを真似た関数をしばしば作るのですが、
第2引数をconst付きにしなくていいのか今も悩み中、

あと>>944の結びは「翻訳もカッケーぃ☆」としとけば完璧だったorz

983 名前:デフォルトの名無しさん [2015/08/08(土) 19:04:38.81 ID:Ud96BClW.net]
>>964
心配すんな中学生。クラスの平均以上の学力あって、補集合習えばわかるようになるから。

>>968
中学生弄ってて回答した気になってたわ。第2引数がconstじゃないのは、const char **にはchar **も渡せる。
すなわちhoge(const int); 以下の意味しかないが、それでもconstつけたいならつければよい。

984 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 19:50:59.65 ID:D0x4pWwH.net]
>>969
ちょっ>>948のは、現実のstrtol()の第2引数はchar**でconst char**を「渡せない」んだけど何か理由有り?
という質問のですが…

ぶっちゃけ説明不足だったかもしれないので今から説明すると、strtol()の第2引数がchar**である結果、
次のコードの変数endをconst付きにできず、万が一[A]の行が紛れ込んでもコンパイル時にwarningにならないという、
long foo(const char* str) {
 /*const*/ char* end; /* ←左のconstのコメントアウトを外すとエラー*/
 long val = strtol(str, &end, 10);
 *(end - 1) = '*'; /* [A] 上の結果、strを書き換えるコードが合法に… */
 return val;
}
このような事故は、strtol()の第2引数がconst char**でありさえすれば防げるのですが、そうなっていないのは何故…!?という疑問

あと引数の型const char**に対し、char**型変数を渡せるというのは真実としていかがなものかと…(VCだとエラーになる

985 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 20:17:04.90 ID:Ud96BClW.net]
>>970
それをstrtolのプロトタイプで防止しようとするのが間違い。
第2引数がconstであっても、
char *endptr;
strtol("123x", &endptr);
はエラーではない。

> あと引数の型const char**に対し、char**型変数を渡せるというのは真実としていかがなものかと…(VCだとエラーになる
ここはCのスレだよ。C++ならエラーだろうね。

986 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 20:27:38.50 ID:D0x4pWwH.net]
>ここはCのスレだよ。C++ならエラーだろうね。
ほんまや(゜д゜)!Cだとconst char** end;でエラーにならない
はずかC〜(*ノノ



987 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 20:43:42.60 ID:cYx2D4V+.net]
>>969
補集合でどや顔してるけど、補集合関係ないことは理解できないんだな
関係あるならちゃんと説明できるよね? w

988 名前:デフォルトの名無しさん [2015/08/08(土) 20:45:16.30 ID:Ud96BClW.net]
>>973
高校で習うまで我慢してなさい。中学生。

989 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 20:58:55.89 ID:1hj8NI9z.net]
結局const char**じゃないのはなぜなのかは解答ないのね

990 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:05:28.11 ID:Ud96BClW.net]
constにする事に意味が無いからと答えたが。

991 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:15:13.37 ID:cYx2D4V+.net]
>>974
もう逃げきりを図ろうとしてるのはみえみえ

>> あと、h抜きしない方が玄人っぽいよ
> 自称玄人カッケーっす

ってなってたらこいつどう言うんだろうな w

992 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:21:07.53 ID:1hj8NI9z.net]
const char**にしてもchar**が渡せるから意味がないってのか
じゃあconst char*にしてもchar*が渡せるからそれも意味がないんですね
じゃあ引数につけるconstなんて全て意味がないんですねわかります

993 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:37:14.26 ID:D0x4pWwH.net]
>>978
const char*にキャスト無しでchar*を代入することはC言語でも非合法だからその噛み付き方は無いわ〜

994 名前:979 mailto:sage [2015/08/08(土) 21:39:27.65 ID:D0x4pWwH.net]
反対だったorz、
char*にconst char*を代入するのはC/C++ともにNG
char**にconst char**を代入するのはCだとOK、C++ではNG

995 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:44:06.68 ID:Ud96BClW.net]
>>977
補集合習えばそれもわかるようになるよ。

996 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 22:04:53.22 ID:Ud96BClW.net]
>>978
意味ないだろ。
void hoge(const char **p)
{
static const char s[]



997 名前: = "alb";
*p = s;
}
void hage(void)
{
char *p;
hoge(&p);
*p = 0;
}
[]
[ここ壊れてます]

998 名前:!rebuild:age mailto:sage [2015/08/08(土) 22:13:50.40 ID:9YQ92kuf.net]


999 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 22:21:53.19 ID:1hj8NI9z.net]
strtolの第2引数にconstが無いのはあってもなくても意味がないからなんかじゃなく
strtolがconstをつけるかどうかを判断する箇所ではないから制約にしていないだけ

第1引数につくconstはstrtolの内部ではポインタ先の実態を変更しないということを示す
strtolの中の操作を制限するという意味になるのでそう実装していることを使用者に示している

第2引数の先頭にconstをつけるかどうかに対応するのは
第1引数に渡される文字列自身がconstなのかどうか
そしてそれはstrtolの関与する部分ではない

>>970のようにconst文字列を渡す前提ならconstがあっても問題ないが
constじゃない文字列を渡して変換できなかった箇所を起点に文字列を変更することも考えられる
するともし第2引数にconstがついていると(やらなくてもコンパイルできるかどうかは置いておいて)constからconstなしへのキャストをすることになる

1000 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 00:33:45.74 ID:ofrSttk1.net]
次スレおね

1001 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 04:54:16.32 ID:ofrSttk1.net]
まだーー

1002 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 05:52:26.39 ID:h6XvpjyR.net]
>>978
あっても無くても意味が無いなんていう事じゃ無い。
constは呼び出し先での制約であり、呼び出し側を制約する事はできない。
ので、意味が無い。

1003 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 06:48:44.91 ID:TarQJqGz.net]
>>981
もうその返ししかできないんだな恥ずかしすぎるわ w

1004 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 07:09:46.99 ID:TarQJqGz.net]
次スレ

C言語なら俺に聞け(入門編)Part 130
peace.2ch.net/test/read.cgi/tech/1439071526/

1005 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 08:32:59.69 ID:i0YjHh3P.net]
const ついてれば、(その関数内で参照先を)書き換えするつもりはないよ とわかるけど
ついてない場合はどっちともとれるから中途半端よねぇ

1006 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 08:44:02.42 ID:uP4RKIW6.net]
>>989
乙乙乙



1007 名前:デフォルトの名無しさん [2015/08/09(日) 09:09:30.47 ID:Mf04DnbC.net]
>>988
補集合理解してれば
>> あと、h抜きしない方が玄人っぽいよ
こんな発言はしないから。キミの妄想は実現しない。
頑張って補集合勉強しろよ。

1008 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 10:07:05.43 ID:UBu5K04W.net]
高校レベルで学ぶ集合論は集合論のうちに入らぬ、
前提命題
 XはURLをh抜きで書く→Xは素人である ( = ¬((XはURLをh抜きで書く)∧¬(Xは素人) )
から
 XはURLをhを抜かずに書く→Xは玄人である ( = ¬(¬(XはURLをh抜きで書く)∧¬(Xは玄人) )
という命題を導くためには、
 { 素人 } ∩ { 玄人 } = φ (排中立)
が成立せねばならないぬが、{ 素人 } ∩ { 玄人 }が無限集合である以上、
演繹系を無限集合の排中律を認めるやつに固定せねば妥当な演繹にならない

1009 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 10:10:28.22 ID:TarQJqGz.net]
>>992
>>988
ループつまんね

1010 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 10:16:29.21 ID:QKRToHAT.net]
out引数の型のconstが意味ないとかいう人の設計はすごい言語に依存しまくったものになってそう

1011 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 10:18:03.07 ID:UBu5K04W.net]
>>995
C言語でおk

1012 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 10:22:58.14 ID:QKRToHAT.net]
そのうちx86では呼び出し規約が○○だから××という前提
とかアーキテクチャにまで依存し出したりするからそういう考え方は根絶やしにしたい

1013 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 11:18:15.91 ID:9Ej9Po2R.net]
>>993

>>(排中立)→「排中律」
『広辞苑』には、「排中原理」と書いてある。この方がもっと分かりやすいかも

1014 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 11:31:16.30 ID:QKRToHAT.net]
>{ 素人 } ∩ { 玄人 }が無限集合である以上
これは自明なの?

1015 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 11:41:47.48 ID:855SMF2a.net]
>>995
> out引数
ようやくそこに言及する人が出てきたか

1016 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。



1017 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<242KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef