【初心者歓迎】C/C++室 Ver.105【環境依存OK】
レス数が1000を超えています。これ以上書き込みはできません。
エスケープシーケンスやWin32APIなどの環境依存なものもOK
そのような質問は必ず環境を書きましょう
半角空白やタブでのインデントはスレに貼ると無くなります
コードを貼れる所
http://codepad.org/
https://ideone.com/
前スレ
【初心者歓迎】C/C++室 Ver.104【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1545944692/ >>949-950
「大丈夫、パイプカットしてるから」みたいな感じかも。
break や continue を「去勢されたgoto」って喩えるじゃない。
if のネストが深くなるのは嫌だし、
関数からの早期returnも(デバッガで追うのが面倒になるので)ダメ、
goto なんかもっての外、という時に do {} while(0); でゴニョゴニョと。
で、コンパイラさんに「常に偽となる条件式です」とか警告されるの。 >>951
はい、もちろん。
でもそれが2章でなくてもいいのかな、と。
出鼻くじく気満々やん、みたいな >>953
選択肢があることが大事なんだって。
C の理屈だとビットパターンが並んだメモリ空間が広がっていてそこにオブジェクトを配置していくというモデルだから
ポインタを通してそこらを理解させるというのもひとつのやり方としてアリでしょ。
きちんとした理屈を後出しされると「先に言えや!」って気持ちになる人は少なくないと思う。 ポインターの何がそんなに難しいと感じるのかわからん
コンピューターの処理なんてアドレス操作ばっかりじゃん
コンピューターの仕組みがわかってないからなのかな?
ならば言語学ぶ前にコンピューターの仕組みを学ぶのが先じゃね? テスト問題にはポインタパズルとでもいうべきゴミみたいな問題が多いからね
わざわざ難しくして間違えるように幾重にも罠を張ったヤツ
そういうのでポインタ嫌いが増える サイズ100を100個用意するより
サイズ10000を1個用意してアドレス割り振るとか好き
ポインタ変数分サイズ増えるのは目をつむる確保速度重視 >>945
私は ** を使うくらいなら *& の方がマシだと思っているのですが、 *& で書いた本はまったくないですね… >>958
何をいいたいのかわかんないのでもうちょっとくやしく あんだけクズをバカにしてたのに、同じエディタを使ってたなんて! >>962
そういうデザインのプログラムがあっても不自然だとは思わないが、
初心者向けでポインタの説明をする段階という前提を置くと参照と混ぜて示すのは混乱の元ちゃう?
& という記号の多義性がアレなのが根本原因ではあるんだが……。 >>963
>初心者向けでポインタの説明をする段階という前提を置くと参照と混ぜて示すのは混乱の元
そうかもしれませんね
>& という記号の多義性がアレなのが根本原因
まあ、そうですよね… >>947-948
同じ人からの連続投稿、ひとつの質問だと気づかなかった。
マクロの実体を do {...} while (0) で囲む定型については
「#define do whole false」でネット検索すると色々出てくる。
この場で説明するには少々分量が多いのだ。 そのうち
#define HOGE(FUGA) do{...FUGA...}while(0);
と描いてしまって失敗する あ、もちろん whole は誤り while で検索してくれ。
× 「#define do whole false」
○ 「#define do while false」 テキストファイルに文字列を書き込みしたいのですが
ofstream ofs("test.txt",ios::ate | ios::in);
ofs << "hoge" << endl;
これだと動いているんですが
最後のendlを無くして"hoge"のみを書き込もうとすると動作しません
どういった理由なんでしょうか? 読み書きは時間がかかる処理だから、読み書きの前に、小さなデータは一時的にバッファという記憶域にまとめて
貯めておき(まあ、キャッシュと似たようなものだ)、改行などがあれば、押し流す(flush)という処理をする。
この場合はendlがflushの役割をする。 >>969 >>970
理解できましたありがとうございます! ポインタを初心者に完璧に理解させる方法分かったわ。
ポインタ=ショートカットアイコンと教えればいいんだ。
メモ帳に文字書いて保存して、ショートカットアイコン作って「これがポインタだよ」って言えばいい。
メモ帳の容量見てごらん?100kbでしょ?ショートカットアイコンの容量見てごらん?1kbしかないね。
ショートカット開いて。文章変えて。ほら1kbのデータで本体が変わった。これがポインタの仕組みだよ。
完璧 その程度の抽象化ならポインタのこと直接説明すればいいと思う アセンブラから入ると
Cのポインタは色々と意味不明 嬉々として大量に出題されるポインタパズルが難易度を無駄に押し上げてる
この時のアドレスは何か、変数は何かと、無駄に凝った問題を作り易いのがポインタの難点
テストのための問題を作る必要があって、そこではふるい落とす必要がある
全員100点じゃマズいと思ってる教師がいるからね
でも教育が成功したと言われる全員100点だとダメ
ここに現行教育の限界点がある
すると、問題難易度は加速しつつ急上昇する
しかも大して面白くもなんともない問題が製造される
穴埋めよりも酷いのが 自称「教科書」が間違ってたりするからな
そういうミスリードが初心者をさらに混乱させてる 高校生の教科書に
ニュートン力学は間違ってるとか
幾何光学は間違ってるとか
この世はユークリッド空間ではない
とか書いても混乱するだけ >>981
百歩譲って厳密じゃないのを許すとしても
明らかな間違いは遺憾 & * の多義性
複合型の記述方法
メモリ確保解放
ポインタの型と演算の結果の違い
const, volatile わかってさえしまえば簡単至極なのに、これほど初心者に教えるのが難しいこともそうはないなw
配列や関数の戦闘アドレスの渡し方をわかりやすく出来てれば難しいと思えることもなかったかもしれない。 戦闘アドレスと防御アドレスを使いこなして達人を目指せ! チートコードはベースアドレスからの距離
ベースアドレスが変わってもチートコードは変わらない
ゲーム好きにはこんな感じか pythonのctypes使うときに役に立ってる
ctypes.POINTERとか謎仕様過ぎた C++って団塊ジュニアまでの言語って感じがする
これから爆発的に需要が伸びていく可能性なんてないよね? 伸びるとかよくわからんが
今時のウェーイってしている言語にしたって、大抵コア部分のライブラリやらランタイムやらはcやc++で書かれているのだから
その言語のお客様で済む用途を越えて何かしようとしたら、出来ないと困るだろ >>994
世に存在する計算機言語の半分以上は C/C++ で記述されていたりするのです 陣取り合戦をしているわけでもなし、
需要が伸びればいいってもんでもない。
重要なのは居場所を見つけるかどうかって話だと思う。
C++ が適切とは言えないけど C++ が比較的マシという理由で C++ が使われている
というのはよくあることで、新しい言語が出現してそういう分野を奪っていくこともある。
もともと C++ がイマイチだったところが消えるだけで、
どんどん衰退して消える運命ってほどのもんではない。 そろそろ次のスレッド…このスレッドが終わる前に告知を…。
俺は…ダメだ(がっくし)。 このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 445日 0時間 59分 3秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。