X



【初心者歓迎】C/C++室 Ver.105【環境依存OK】
レス数が1000を超えています。これ以上書き込みはできません。
0952デフォルトの名無しさん
垢版 |
2020/07/07(火) 07:56:58.77ID:bJbvn87/
>>949-950
「大丈夫、パイプカットしてるから」みたいな感じかも。
break や continue を「去勢されたgoto」って喩えるじゃない。

if のネストが深くなるのは嫌だし、
関数からの早期returnも(デバッガで追うのが面倒になるので)ダメ、
goto なんかもっての外、という時に do {} while(0); でゴニョゴニョと。

で、コンパイラさんに「常に偽となる条件式です」とか警告されるの。
0953デフォルトの名無しさん
垢版 |
2020/07/07(火) 12:13:10.64ID:bEGKo5iM
>>951
はい、もちろん。
でもそれが2章でなくてもいいのかな、と。
出鼻くじく気満々やん、みたいな
0954はちみつ餃子 ◆8X2XSCHEME
垢版 |
2020/07/07(火) 13:48:51.21ID:tzlORGl2
>>953
選択肢があることが大事なんだって。

C の理屈だとビットパターンが並んだメモリ空間が広がっていてそこにオブジェクトを配置していくというモデルだから
ポインタを通してそこらを理解させるというのもひとつのやり方としてアリでしょ。
きちんとした理屈を後出しされると「先に言えや!」って気持ちになる人は少なくないと思う。
0955デフォルトの名無しさん
垢版 |
2020/07/07(火) 19:09:26.79ID:v3ijliVb
ポインターの何がそんなに難しいと感じるのかわからん
コンピューターの処理なんてアドレス操作ばっかりじゃん

コンピューターの仕組みがわかってないからなのかな?
ならば言語学ぶ前にコンピューターの仕組みを学ぶのが先じゃね?
0956デフォルトの名無しさん
垢版 |
2020/07/07(火) 19:39:25.64ID:aaXFzUCt
テスト問題にはポインタパズルとでもいうべきゴミみたいな問題が多いからね
わざわざ難しくして間違えるように幾重にも罠を張ったヤツ
そういうのでポインタ嫌いが増える
0957デフォルトの名無しさん
垢版 |
2020/07/07(火) 21:02:20.63ID:yByKJQAn
サイズ100を100個用意するより
サイズ10000を1個用意してアドレス割り振るとか好き
ポインタ変数分サイズ増えるのは目をつむる確保速度重視
0958◆QZaw55cn4c
垢版 |
2020/07/07(火) 21:28:33.53ID:7uEBIb8C
>>945
私は ** を使うくらいなら *& の方がマシだと思っているのですが、 *& で書いた本はまったくないですね…
0963はちみつ餃子 ◆8X2XSCHEME
垢版 |
2020/07/07(火) 23:17:48.32ID:tzlORGl2
>>962
そういうデザインのプログラムがあっても不自然だとは思わないが、
初心者向けでポインタの説明をする段階という前提を置くと参照と混ぜて示すのは混乱の元ちゃう?
& という記号の多義性がアレなのが根本原因ではあるんだが……。
0964◆QZaw55cn4c
垢版 |
2020/07/07(火) 23:21:02.99ID:7uEBIb8C
>>963
>初心者向けでポインタの説明をする段階という前提を置くと参照と混ぜて示すのは混乱の元
そうかもしれませんね

>& という記号の多義性がアレなのが根本原因
まあ、そうですよね…
0965デフォルトの名無しさん
垢版 |
2020/07/08(水) 08:50:17.72ID:sJ2uy93A
>>947-948
同じ人からの連続投稿、ひとつの質問だと気づかなかった。

マクロの実体を do {...} while (0) で囲む定型については
「#define do whole false」でネット検索すると色々出てくる。
この場で説明するには少々分量が多いのだ。
0966デフォルトの名無しさん
垢版 |
2020/07/08(水) 09:23:35.50ID:hADFKHgu
そのうち
#define HOGE(FUGA) do{...FUGA...}while(0);
と描いてしまって失敗する
0967965
垢版 |
2020/07/08(水) 18:00:01.90ID:sJ2uy93A
あ、もちろん whole は誤り while で検索してくれ。

× 「#define do whole false」
○ 「#define do while false」
0968デフォルトの名無しさん
垢版 |
2020/07/09(木) 20:13:12.08ID:gJQJWBxs
テキストファイルに文字列を書き込みしたいのですが

ofstream ofs("test.txt",ios::ate | ios::in);
ofs << "hoge" << endl;

これだと動いているんですが
最後のendlを無くして"hoge"のみを書き込もうとすると動作しません
どういった理由なんでしょうか?
0970蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/09(木) 20:22:54.18ID:2UhyUN9n
読み書きは時間がかかる処理だから、読み書きの前に、小さなデータは一時的にバッファという記憶域にまとめて
貯めておき(まあ、キャッシュと似たようなものだ)、改行などがあれば、押し流す(flush)という処理をする。
この場合はendlがflushの役割をする。
0972デフォルトの名無しさん
垢版 |
2020/07/11(土) 00:06:30.27ID:87hwO6K6
ポインタを初心者に完璧に理解させる方法分かったわ。
ポインタ=ショートカットアイコンと教えればいいんだ。

メモ帳に文字書いて保存して、ショートカットアイコン作って「これがポインタだよ」って言えばいい。
メモ帳の容量見てごらん?100kbでしょ?ショートカットアイコンの容量見てごらん?1kbしかないね。
ショートカット開いて。文章変えて。ほら1kbのデータで本体が変わった。これがポインタの仕組みだよ。

完璧
0976デフォルトの名無しさん
垢版 |
2020/07/11(土) 11:03:46.07ID:J0INoyBc
ポインタの躓き処ってそういう場所じゃないから
0978デフォルトの名無しさん
垢版 |
2020/07/11(土) 11:20:02.10ID:fm8o+adg
嬉々として大量に出題されるポインタパズルが難易度を無駄に押し上げてる
この時のアドレスは何か、変数は何かと、無駄に凝った問題を作り易いのがポインタの難点

テストのための問題を作る必要があって、そこではふるい落とす必要がある
全員100点じゃマズいと思ってる教師がいるからね
でも教育が成功したと言われる全員100点だとダメ
ここに現行教育の限界点がある
すると、問題難易度は加速しつつ急上昇する

しかも大して面白くもなんともない問題が製造される
穴埋めよりも酷いのが
0980デフォルトの名無しさん
垢版 |
2020/07/11(土) 11:45:57.83ID:J0INoyBc
自称「教科書」が間違ってたりするからな
そういうミスリードが初心者をさらに混乱させてる
0982デフォルトの名無しさん
垢版 |
2020/07/11(土) 11:49:05.50ID:60oNEnIZ
高校生の教科書に
ニュートン力学は間違ってるとか
幾何光学は間違ってるとか
この世はユークリッド空間ではない
とか書いても混乱するだけ
0983デフォルトの名無しさん
垢版 |
2020/07/11(土) 12:12:13.44ID:J0INoyBc
>>981
百歩譲って厳密じゃないのを許すとしても
明らかな間違いは遺憾
0986デフォルトの名無しさん
垢版 |
2020/07/11(土) 16:23:26.53ID:60oNEnIZ
& * の多義性
複合型の記述方法
メモリ確保解放
ポインタの型と演算の結果の違い
const, volatile
0987デフォルトの名無しさん
垢版 |
2020/07/11(土) 20:36:15.52ID:87hwO6K6
わかってさえしまえば簡単至極なのに、これほど初心者に教えるのが難しいこともそうはないなw
配列や関数の戦闘アドレスの渡し方をわかりやすく出来てれば難しいと思えることもなかったかもしれない。
0990デフォルトの名無しさん
垢版 |
2020/07/11(土) 21:29:54.59ID:sGHMgavQ
チートコードはベースアドレスからの距離
ベースアドレスが変わってもチートコードは変わらない
ゲーム好きにはこんな感じか
0993デフォルトの名無しさん
垢版 |
2020/07/12(日) 10:26:26.21ID:NK7E+AG5
pythonのctypes使うときに役に立ってる
ctypes.POINTERとか謎仕様過ぎた
0994デフォルトの名無しさん
垢版 |
2020/07/12(日) 21:37:47.68ID:PErY82OB
C++って団塊ジュニアまでの言語って感じがする
これから爆発的に需要が伸びていく可能性なんてないよね?
0995デフォルトの名無しさん
垢版 |
2020/07/12(日) 21:51:26.17ID:dmFXGwc3
伸びるとかよくわからんが
今時のウェーイってしている言語にしたって、大抵コア部分のライブラリやらランタイムやらはcやc++で書かれているのだから

その言語のお客様で済む用途を越えて何かしようとしたら、出来ないと困るだろ
0996◆QZaw55cn4c
垢版 |
2020/07/12(日) 22:14:41.38ID:YoHAyY/u
>>994
世に存在する計算機言語の半分以上は C/C++ で記述されていたりするのです
0997はちみつ餃子 ◆8X2XSCHEME
垢版 |
2020/07/13(月) 02:47:06.70ID:vJz2FqxN
陣取り合戦をしているわけでもなし、
需要が伸びればいいってもんでもない。
重要なのは居場所を見つけるかどうかって話だと思う。

C++ が適切とは言えないけど C++ が比較的マシという理由で C++ が使われている
というのはよくあることで、新しい言語が出現してそういう分野を奪っていくこともある。
もともと C++ がイマイチだったところが消えるだけで、
どんどん衰退して消える運命ってほどのもんではない。
0998デフォルトの名無しさん
垢版 |
2020/07/13(月) 06:38:36.94ID:17o/9bhC
そろそろ次のスレッド…このスレッドが終わる前に告知を…。
俺は…ダメだ(がっくし)。
0999デフォルトの名無しさん
垢版 |
2020/07/13(月) 07:37:30.49ID:/O+2Yaja
1000なら次スレなし
1000デフォルトの名無しさん
垢版 |
2020/07/13(月) 07:53:41.77ID:V+zIL/Eb
のとおり
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 445日 0時間 59分 3秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。