■ このスレッドは過去ログ倉庫に格納されています
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
- 1 :デフォルトの名無しさん:2019/04/25(木) 06:54:38.08 ID:6xUIrXDu.net
- エスケープシーケンスやWin32APIなどの環境依存なものもOK
そのような質問は必ず環境を書きましょう
半角空白やタブでのインデントはスレに貼ると無くなります
コードを貼れる所
http://codepad.org/
https://ideone.com/
前スレ
【初心者歓迎】C/C++室 Ver.104【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1545944692/
- 952 :デフォルトの名無しさん:2020/07/07(火) 07:56:58.77 ID:bJbvn87/.net
- >>949-950
「大丈夫、パイプカットしてるから」みたいな感じかも。
break や continue を「去勢されたgoto」って喩えるじゃない。
if のネストが深くなるのは嫌だし、
関数からの早期returnも(デバッガで追うのが面倒になるので)ダメ、
goto なんかもっての外、という時に do {} while(0); でゴニョゴニョと。
で、コンパイラさんに「常に偽となる条件式です」とか警告されるの。
- 953 :デフォルトの名無しさん:2020/07/07(火) 12:13:10.64 ID:bEGKo5iM.net
- >>951
はい、もちろん。
でもそれが2章でなくてもいいのかな、と。
出鼻くじく気満々やん、みたいな
- 954 :はちみつ餃子 ◆8X2XSCHEME :2020/07/07(火) 13:48:51 ID:tzlORGl2.net
- >>953
選択肢があることが大事なんだって。
C の理屈だとビットパターンが並んだメモリ空間が広がっていてそこにオブジェクトを配置していくというモデルだから
ポインタを通してそこらを理解させるというのもひとつのやり方としてアリでしょ。
きちんとした理屈を後出しされると「先に言えや!」って気持ちになる人は少なくないと思う。
- 955 :デフォルトの名無しさん:2020/07/07(火) 19:09:26.79 ID:v3ijliVb.net
- ポインターの何がそんなに難しいと感じるのかわからん
コンピューターの処理なんてアドレス操作ばっかりじゃん
コンピューターの仕組みがわかってないからなのかな?
ならば言語学ぶ前にコンピューターの仕組みを学ぶのが先じゃね?
- 956 :デフォルトの名無しさん:2020/07/07(火) 19:39:25.64 ID:aaXFzUCt.net
- テスト問題にはポインタパズルとでもいうべきゴミみたいな問題が多いからね
わざわざ難しくして間違えるように幾重にも罠を張ったヤツ
そういうのでポインタ嫌いが増える
- 957 :デフォルトの名無しさん:2020/07/07(火) 21:02:20.63 ID:yByKJQAn.net
- サイズ100を100個用意するより
サイズ10000を1個用意してアドレス割り振るとか好き
ポインタ変数分サイズ増えるのは目をつむる確保速度重視
- 958 ::2020/07/07(火) 21:28:33.53 ID:7uEBIb8C.net
- >>945
私は ** を使うくらいなら *& の方がマシだと思っているのですが、 *& で書いた本はまったくないですね…
- 959 :はちみつ餃子 :2020/07/07(火) 22:00:58.59 ID:tzlORGl2.net
- >>958
何をいいたいのかわかんないのでもうちょっとくやしく
- 960 :デフォルトの名無しさん:2020/07/07(火) 22:12:29.39 ID:TeF3RSyR.net
- あんだけクズをバカにしてたのに、同じエディタを使ってたなんて!
- 961 :デフォルトの名無しさん:2020/07/07(火) 22:17:27.53 ID:4bY8cpqR.net
- >>960
くやしいのうwwwww
- 962 ::2020/07/07(火) 23:10:29.18 ID:7uEBIb8C.net
- >>959
https://ideone.com/LnS5rf
>>945
こういうのも、やっぱりサドになりますか…
- 963 :はちみつ餃子 :2020/07/07(火) 23:17:48.32 ID:tzlORGl2.net
- >>962
そういうデザインのプログラムがあっても不自然だとは思わないが、
初心者向けでポインタの説明をする段階という前提を置くと参照と混ぜて示すのは混乱の元ちゃう?
& という記号の多義性がアレなのが根本原因ではあるんだが……。
- 964 ::2020/07/07(火) 23:21:02.99 ID:7uEBIb8C.net
- >>963
>初心者向けでポインタの説明をする段階という前提を置くと参照と混ぜて示すのは混乱の元
そうかもしれませんね
>& という記号の多義性がアレなのが根本原因
まあ、そうですよね…
- 965 :デフォルトの名無しさん:2020/07/08(水) 08:50:17.72 ID:sJ2uy93A.net
- >>947-948
同じ人からの連続投稿、ひとつの質問だと気づかなかった。
マクロの実体を do {...} while (0) で囲む定型については
「#define do whole false」でネット検索すると色々出てくる。
この場で説明するには少々分量が多いのだ。
- 966 :デフォルトの名無しさん:2020/07/08(水) 09:23:35.50 ID:hADFKHgu.net
- そのうち
#define HOGE(FUGA) do{...FUGA...}while(0);
と描いてしまって失敗する
- 967 :965:2020/07/08(水) 18:00:01 ID:sJ2uy93A.net
- あ、もちろん whole は誤り while で検索してくれ。
× 「#define do whole false」
○ 「#define do while false」
- 968 :デフォルトの名無しさん:2020/07/09(木) 20:13:12.08 ID:gJQJWBxs.net
- テキストファイルに文字列を書き込みしたいのですが
ofstream ofs("test.txt",ios::ate | ios::in);
ofs << "hoge" << endl;
これだと動いているんですが
最後のendlを無くして"hoge"のみを書き込もうとすると動作しません
どういった理由なんでしょうか?
- 969 :デフォルトの名無しさん:2020/07/09(木) 20:17:07.59 ID:N+YU0rOq.net
- flushしないと
- 970 :蟻人間 :2020/07/09(木) 20:22:54.18 ID:2UhyUN9n.net
- 読み書きは時間がかかる処理だから、読み書きの前に、小さなデータは一時的にバッファという記憶域にまとめて
貯めておき(まあ、キャッシュと似たようなものだ)、改行などがあれば、押し流す(flush)という処理をする。
この場合はendlがflushの役割をする。
- 971 :デフォルトの名無しさん:2020/07/09(木) 20:48:42.31 ID:gJQJWBxs.net
- >>969 >>970
理解できましたありがとうございます!
- 972 :デフォルトの名無しさん:2020/07/11(土) 00:06:30.27 ID:87hwO6K6.net
- ポインタを初心者に完璧に理解させる方法分かったわ。
ポインタ=ショートカットアイコンと教えればいいんだ。
メモ帳に文字書いて保存して、ショートカットアイコン作って「これがポインタだよ」って言えばいい。
メモ帳の容量見てごらん?100kbでしょ?ショートカットアイコンの容量見てごらん?1kbしかないね。
ショートカット開いて。文章変えて。ほら1kbのデータで本体が変わった。これがポインタの仕組みだよ。
完璧
- 973 :デフォルトの名無しさん:2020/07/11(土) 00:21:04.14 ID:lUabZX1b.net
- ポインタの演算は?
- 974 :デフォルトの名無しさん:2020/07/11(土) 00:21:34.19 ID:nv0BNjEd.net
- その程度の抽象化ならポインタのこと直接説明すればいいと思う
- 975 :デフォルトの名無しさん:2020/07/11(土) 08:24:16 ID:sGHMgavQ.net
- 住所録とかじゃダメなん?
- 976 :デフォルトの名無しさん:2020/07/11(土) 11:03:46 ID:J0INoyBc.net
- ポインタの躓き処ってそういう場所じゃないから
- 977 :デフォルトの名無しさん:2020/07/11(土) 11:18:32 ID:60oNEnIZ.net
- アセンブラから入ると
Cのポインタは色々と意味不明
- 978 :デフォルトの名無しさん:2020/07/11(土) 11:20:02 ID:fm8o+adg.net
- 嬉々として大量に出題されるポインタパズルが難易度を無駄に押し上げてる
この時のアドレスは何か、変数は何かと、無駄に凝った問題を作り易いのがポインタの難点
テストのための問題を作る必要があって、そこではふるい落とす必要がある
全員100点じゃマズいと思ってる教師がいるからね
でも教育が成功したと言われる全員100点だとダメ
ここに現行教育の限界点がある
すると、問題難易度は加速しつつ急上昇する
しかも大して面白くもなんともない問題が製造される
穴埋めよりも酷いのが
- 979 :デフォルトの名無しさん:2020/07/11(土) 11:20:10 ID:Rtii2xnW.net
- レコード針みたいなもんじゃないの
- 980 :デフォルトの名無しさん:2020/07/11(土) 11:45:57.83 ID:J0INoyBc.net
- 自称「教科書」が間違ってたりするからな
そういうミスリードが初心者をさらに混乱させてる
- 981 :デフォルトの名無しさん:2020/07/11(土) 11:47:30.73 ID:60oNEnIZ.net
- 初心者用教科書は厳密じゃやくて良いんだよ
- 982 :デフォルトの名無しさん:2020/07/11(土) 11:49:05.50 ID:60oNEnIZ.net
- 高校生の教科書に
ニュートン力学は間違ってるとか
幾何光学は間違ってるとか
この世はユークリッド空間ではない
とか書いても混乱するだけ
- 983 :デフォルトの名無しさん:2020/07/11(土) 12:12:13 ID:J0INoyBc.net
- >>981
百歩譲って厳密じゃないのを許すとしても
明らかな間違いは遺憾
- 984 :デフォルトの名無しさん:2020/07/11(土) 12:23:45.26 ID:60oNEnIZ.net
- 技術書に明らかな間違い?
- 985 :デフォルトの名無しさん:2020/07/11(土) 15:56:25.03 ID:sGHMgavQ.net
- >>976
具体的にどういう場所なん?
- 986 :デフォルトの名無しさん:2020/07/11(土) 16:23:26.53 ID:60oNEnIZ.net
- & * の多義性
複合型の記述方法
メモリ確保解放
ポインタの型と演算の結果の違い
const, volatile
- 987 :デフォルトの名無しさん:2020/07/11(土) 20:36:15.52 ID:87hwO6K6.net
- わかってさえしまえば簡単至極なのに、これほど初心者に教えるのが難しいこともそうはないなw
配列や関数の戦闘アドレスの渡し方をわかりやすく出来てれば難しいと思えることもなかったかもしれない。
- 988 :デフォルトの名無しさん:2020/07/11(土) 20:47:57.04 ID:kW8apoiX.net
- 戦闘アドレスと防御アドレスを使いこなして達人を目指せ!
- 989 :デフォルトの名無しさん:2020/07/11(土) 20:48:58.21 ID:lUabZX1b.net
- >>987
そうか?
- 990 :デフォルトの名無しさん:2020/07/11(土) 21:29:54.59 ID:sGHMgavQ.net
- チートコードはベースアドレスからの距離
ベースアドレスが変わってもチートコードは変わらない
ゲーム好きにはこんな感じか
- 991 :デフォルトの名無しさん:2020/07/12(日) 08:37:19.13 ID:03QLQuvk.net
- vc++でバリアント型って使えますか??
- 992 :蟻人間 :2020/07/12(日) 10:07:58.94 ID:bazuV89L.net
- >>991
Boost
- 993 :デフォルトの名無しさん:2020/07/12(日) 10:26:26 ID:NK7E+AG5.net
- pythonのctypes使うときに役に立ってる
ctypes.POINTERとか謎仕様過ぎた
- 994 :デフォルトの名無しさん:2020/07/12(日) 21:37:47.68 ID:PErY82OB.net
- C++って団塊ジュニアまでの言語って感じがする
これから爆発的に需要が伸びていく可能性なんてないよね?
- 995 :デフォルトの名無しさん:2020/07/12(日) 21:51:26.17 ID:dmFXGwc3.net
- 伸びるとかよくわからんが
今時のウェーイってしている言語にしたって、大抵コア部分のライブラリやらランタイムやらはcやc++で書かれているのだから
その言語のお客様で済む用途を越えて何かしようとしたら、出来ないと困るだろ
- 996 ::2020/07/12(日) 22:14:41.38 ID:YoHAyY/u.net
- >>994
世に存在する計算機言語の半分以上は C/C++ で記述されていたりするのです
- 997 :はちみつ餃子 :2020/07/13(月) 02:47:06.70 ID:vJz2FqxN.net
- 陣取り合戦をしているわけでもなし、
需要が伸びればいいってもんでもない。
重要なのは居場所を見つけるかどうかって話だと思う。
C++ が適切とは言えないけど C++ が比較的マシという理由で C++ が使われている
というのはよくあることで、新しい言語が出現してそういう分野を奪っていくこともある。
もともと C++ がイマイチだったところが消えるだけで、
どんどん衰退して消える運命ってほどのもんではない。
- 998 :デフォルトの名無しさん:2020/07/13(月) 06:38:36.94 ID:17o/9bhC.net
- そろそろ次のスレッド…このスレッドが終わる前に告知を…。
俺は…ダメだ(がっくし)。
- 999 :デフォルトの名無しさん:2020/07/13(月) 07:37:30.49 ID:/O+2Yaja.net
- 1000なら次スレなし
- 1000 :デフォルトの名無しさん:2020/07/13(月) 07:53:41 ID:V+zIL/Eb.net
- のとおり
- 1001 :2ch.net投稿限界:Over 1000 Thread
- 2ch.netからのレス数が1000に到達しました。
総レス数 1001
269 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★