!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
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/
※前スレ
C言語なら俺に聞け 153
https://mevius.5ch.net/test/read.cgi/tech/1566050562/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C言語なら俺に聞け 154
レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん (ワッチョイ bf63-lB9F)
2020/01/14(火) 19:32:30.16ID:SgRnb4BR0801デフォルトの名無しさん (ワッチョイ df52-dhD/)
2020/05/04(月) 19:20:21.44ID:xCaPkE7P0 >>800
それが正解。最適化されたら検知できないほどの差しかないから通常は気にする必要ないよ。
それが正解。最適化されたら検知できないほどの差しかないから通常は気にする必要ないよ。
802デフォルトの名無しさん (ワッチョイ 07b3-wl64)
2020/05/04(月) 19:26:17.85ID:nMCshN110 差が大きいか小さいかなんて中身によるだろ
ほとんど何もしない関数で
関数として実装されて
ループの中にあれば
差が大きいこともある
構造体の方が速い事もあるし
直接の方が速い事もある
とりあえずはきれいなコードで作っておいて
パフォーマンスが問題だとわかった時点で対策すれば良い
おそらく今回の部分は99.99%気にしなくて良い
ほとんど何もしない関数で
関数として実装されて
ループの中にあれば
差が大きいこともある
構造体の方が速い事もあるし
直接の方が速い事もある
とりあえずはきれいなコードで作っておいて
パフォーマンスが問題だとわかった時点で対策すれば良い
おそらく今回の部分は99.99%気にしなくて良い
803デフォルトの名無しさん (ワッチョイ 07b3-wl64)
2020/05/04(月) 19:30:22.69ID:nMCshN110 非常に短時間の測定は
x86ならTSCレジスタで測るのが良い
非常に軽く非常に分解能が高い
QPCもTSCから計算して求めている
x86ならTSCレジスタで測るのが良い
非常に軽く非常に分解能が高い
QPCもTSCから計算して求めている
804デフォルトの名無しさん (ワッチョイ 07b3-wl64)
2020/05/04(月) 19:34:24.84ID:nMCshN110 同じコードでも周りのコードによって時間が大幅に変わる事があるので注意
例えば関数がインライン展開されてたものが
全然関係ない所からのコールが追加されただけで
関数コールに変わったりする
また、
結果を使わないただの時間測定コードだと
関数コール自体消される事も良くある
例えば関数がインライン展開されてたものが
全然関係ない所からのコールが追加されただけで
関数コールに変わったりする
また、
結果を使わないただの時間測定コードだと
関数コール自体消される事も良くある
805デフォルトの名無しさん (ワッチョイ e7ca-Rrpt)
2020/05/04(月) 21:14:13.28ID:7/M++IMa0 最適化しててもアセンブラソース吐かせて比べてみると勉強になると思う。
いやむしろ最適化してる時こそアセンブラソース吐かせて確認するのがいいかも。
勝手にインラインになってたり処理が省略されたりするしね。
いやむしろ最適化してる時こそアセンブラソース吐かせて確認するのがいいかも。
勝手にインラインになってたり処理が省略されたりするしね。
806デフォルトの名無しさん (スフッ Sdff-h83k)
2020/05/04(月) 21:45:58.62ID:GSMTfSohd 最適化なしでリリースすることはあり得ないのだから
当然測定もチューニングも最適化オプション込みででやるべきだし
O0オプションで吐いたアセンブラなんて見ても無意味
当然測定もチューニングも最適化オプション込みででやるべきだし
O0オプションで吐いたアセンブラなんて見ても無意味
807デフォルトの名無しさん (ワッチョイ 07b3-wl64)
2020/05/04(月) 22:01:22.81ID:nMCshN110 一般的な話をすると
最適化無しでリリースする事はあるけど
パフォーマンスが重要であれば無いだろうねえ
最適化無しでリリースする事はあるけど
パフォーマンスが重要であれば無いだろうねえ
808デフォルトの名無しさん (ワッチョイ e7ca-Rrpt)
2020/05/04(月) 22:11:38.30ID:7/M++IMa0 あぁ、呼出規約についての勉強のつもりだったから最適化無しを想定したけど、
ベンチマークみたいなコード書いてるんだろうからそもそも処理が残ってるかの確認とかの意味で最適化時のを見た方がいいと書いた。
ベンチマークみたいなコード書いてるんだろうからそもそも処理が残ってるかの確認とかの意味で最適化時のを見た方がいいと書いた。
809デフォルトの名無しさん (ワッチョイ e7ca-Rrpt)
2020/05/04(月) 22:11:58.28ID:7/M++IMa0 あぁ、呼出規約についての勉強のつもりだったから最適化無しを想定したけど、
ベンチマークみたいなコード書いてるんだろうからそもそも処理が残ってるかの確認とかの意味で最適化時のを見た方がいいと書いた。
ベンチマークみたいなコード書いてるんだろうからそもそも処理が残ってるかの確認とかの意味で最適化時のを見た方がいいと書いた。
810デフォルトの名無しさん (ワッチョイ e7ca-Rrpt)
2020/05/04(月) 22:15:22.94ID:7/M++IMa0 ダブりすまん
811デフォルトの名無しさん (ワッチョイ 07b3-wl64)
2020/05/04(月) 22:17:04.56ID:nMCshN110 >>810
昔両親にそう言って謝ったことがある
昔両親にそう言って謝ったことがある
812デフォルトの名無しさん (ワッチョイ e763-ts7H)
2020/05/04(月) 22:19:56.77ID:GsKQPEDp0 「書込失敗」ってでたときは、念のためリロードしてみた方がいい
813デフォルトの名無しさん (スップ Sd7f-rsUV)
2020/05/04(月) 22:45:06.74ID:OG81C0sgd 自分の業界じゃ最適化無しリリースなんて当たり前にしてるよ
多くは有りリリースだろうけど、無しがあり得ないなんてことは無い
多くは有りリリースだろうけど、無しがあり得ないなんてことは無い
814デフォルトの名無しさん (ワッチョイ 5fbd-NlPP)
2020/05/04(月) 22:55:41.14ID:nUxpSn1T0 初心者です。
ポインタの理解を深めるために、visual studioのデバッグで、変数の値をウォッチしています。
例えば、
FILE *src;
fopen(〜10byteのファイルを開く〜)
fseek(fp, 0L, SEEK_END);
printf("%s は %ld byteです.\n",filename, ftell(fp));
こんな感じの命令をやった時に、*fpとかfpとか&fpの変数を観察してみたのですが、
値がピクリとも変化していないのに、ftell(fp)を使うとちゃんと10byteと表示されるのです。
fsekkの時点でfpは変化していると思いますが、どのようにウォッチすれば良いのでしょうか?
ftellはfpのなんの変数を見ているんでしょう…。。
ポインタの理解を深めるために、visual studioのデバッグで、変数の値をウォッチしています。
例えば、
FILE *src;
fopen(〜10byteのファイルを開く〜)
fseek(fp, 0L, SEEK_END);
printf("%s は %ld byteです.\n",filename, ftell(fp));
こんな感じの命令をやった時に、*fpとかfpとか&fpの変数を観察してみたのですが、
値がピクリとも変化していないのに、ftell(fp)を使うとちゃんと10byteと表示されるのです。
fsekkの時点でfpは変化していると思いますが、どのようにウォッチすれば良いのでしょうか?
ftellはfpのなんの変数を見ているんでしょう…。。
815814 (ワッチョイ 5fbd-NlPP)
2020/05/04(月) 23:00:16.50ID:nUxpSn1T0 >>814
FILE *fp はポインタですから、fp の指す位置は変化しません
fseek() で変化するのは、fp が指した先の領域(struct FILE 構造体)の中にあるパラメーターであって、fp 自体は変化せず同じ位置を指したままでいます。
FILE *fp はポインタですから、fp の指す位置は変化しません
fseek() で変化するのは、fp が指した先の領域(struct FILE 構造体)の中にあるパラメーターであって、fp 自体は変化せず同じ位置を指したままでいます。
817デフォルトの名無しさん (ワッチョイ df93-BhcZ)
2020/05/04(月) 23:19:51.78ID:FJ9kDVSL0 ポインタで詰まっている初学者ですが、皆様はどうやってポインタ勉強しましたか?
818デフォルトの名無しさん (ワッチョイ df47-ts7H)
2020/05/04(月) 23:20:08.53ID:Fiop0J3e0 >>814
FILE構造体が直接情報を持っているとは限らず、さらにポインタを多段に経由したり
OS管理のファイルハンドル・ファイルディスクリプタなどの先に情報がある可能性もある。
そもそも構造体メンバが規定されていないのでウォッチで何も見えなくても不思議は無いよ。
FILE構造体が直接情報を持っているとは限らず、さらにポインタを多段に経由したり
OS管理のファイルハンドル・ファイルディスクリプタなどの先に情報がある可能性もある。
そもそも構造体メンバが規定されていないのでウォッチで何も見えなくても不思議は無いよ。
819デフォルトの名無しさん (ワッチョイ e763-ts7H)
2020/05/04(月) 23:22:46.58ID:GsKQPEDp0 インクルードファイルあさって、FILE構造体の中身を見てみると面白いよ
820デフォルトの名無しさん (ワッチョイ 5fbd-NlPP)
2020/05/04(月) 23:26:28.97ID:nUxpSn1T0 >>816
ありがとうございます。fp自体は変化してなかったのですね。
FILE構造体の中に現在値を示す変数があるのだと思い、fp.posみたいなことを試してみたのですが、
よくわかりませんでした。(_Placeholderとかいうのしかなさそうでした。)
struct FILE構造体の中身の値の変化を、ウォッチ機能で観察することは可能なんでしょうか?
ありがとうございます。fp自体は変化してなかったのですね。
FILE構造体の中に現在値を示す変数があるのだと思い、fp.posみたいなことを試してみたのですが、
よくわかりませんでした。(_Placeholderとかいうのしかなさそうでした。)
struct FILE構造体の中身の値の変化を、ウォッチ機能で観察することは可能なんでしょうか?
822デフォルトの名無しさん (ワッチョイ 5fbd-NlPP)
2020/05/04(月) 23:35:26.33ID:nUxpSn1T0823デフォルトの名無しさん (アウアウウー Saab-dhD/)
2020/05/04(月) 23:50:07.56ID:29dvD9qia >>817
俺は以下のようなことを繰り返して段階的に複雑なケースを理解していったよ。
まずは入門書で基本的な概念を理解する。
実際にコードを書いて、様々な型の変数、配列、構造体やその要素に対して&演算子を適用してアドレス値を取り出して、対応する型のポインタに入れる。
ポインタが格納している値、ポインタが指している先に格納されている値をprintfで表示して確認する。
ポインタをインクリメント、デクリメントしたりしてポインタ自体の値の変化やポインタが指す先の値が何なのかを確認する。
一段階のポインタが理解できてきたらポインタのポインタなど多段階の間接参照を試してみる。ここでもまたポインタの演算を様々に試す。
値が予想とは異なるものだったり、型が違うとコンパイラに指摘されたりしたら、やはり絵を描いてどこがどう違っていたかを考えてみる。
何かを理解したら、更にここをこうしたらどうなるのかという疑問が色々沸いてくるのでそれらも逐一コードを書いて試していく。
慣れてくれば多次元だったりconstや関数ポインタなども含めて複雑にネストした宣言もシンプルなルールが再帰的に組み合わせただけのものというのが腑に落ちて理解できてくると思う。
俺は以下のようなことを繰り返して段階的に複雑なケースを理解していったよ。
まずは入門書で基本的な概念を理解する。
実際にコードを書いて、様々な型の変数、配列、構造体やその要素に対して&演算子を適用してアドレス値を取り出して、対応する型のポインタに入れる。
ポインタが格納している値、ポインタが指している先に格納されている値をprintfで表示して確認する。
ポインタをインクリメント、デクリメントしたりしてポインタ自体の値の変化やポインタが指す先の値が何なのかを確認する。
一段階のポインタが理解できてきたらポインタのポインタなど多段階の間接参照を試してみる。ここでもまたポインタの演算を様々に試す。
値が予想とは異なるものだったり、型が違うとコンパイラに指摘されたりしたら、やはり絵を描いてどこがどう違っていたかを考えてみる。
何かを理解したら、更にここをこうしたらどうなるのかという疑問が色々沸いてくるのでそれらも逐一コードを書いて試していく。
慣れてくれば多次元だったりconstや関数ポインタなども含めて複雑にネストした宣言もシンプルなルールが再帰的に組み合わせただけのものというのが腑に落ちて理解できてくると思う。
824デフォルトの名無しさん (ワッチョイ e763-ts7H)
2020/05/04(月) 23:51:26.90ID:GsKQPEDp0 FILE構造体でアクセスした場合は、直接ファイルを操作するというよりも
バッファリングしたデータへのアクセスと考えた方が良いかも知れません
実際のファイルはファイルディスクリプタというOSの仕組みの中で操作してます
バッファリングしたデータへのアクセスと考えた方が良いかも知れません
実際のファイルはファイルディスクリプタというOSの仕組みの中で操作してます
825デフォルトの名無しさん (ワッチョイ df47-ts7H)
2020/05/05(火) 00:00:06.80ID:3UIwTLmD0 >>821
lseek() で実装できるんじゃないの?何かダメな理由知ってるんなら教えて。
lseek() で実装できるんじゃないの?何かダメな理由知ってるんなら教えて。
826デフォルトの名無しさん (ワッチョイ df52-dhD/)
2020/05/05(火) 00:00:45.59ID:J1ERvQ2q0 >>822
FILE構造体の内容は仕様で規定されていないから、使用するライブラリ等の実装で決められていてユーザ側が知ることはできないし知る必要もない物だよ。_ptrとかがあるという話も、とある実装ではそうなっているということ。
そもそものポインタの理解を深めるという目的なら、FILE構造体の中身はこれ以上深入りする必要はないね。
FILE構造体は初心者が真っ先に触れるものの一つだけどちょっと特殊な存在だね。
FILE構造体の内容は仕様で規定されていないから、使用するライブラリ等の実装で決められていてユーザ側が知ることはできないし知る必要もない物だよ。_ptrとかがあるという話も、とある実装ではそうなっているということ。
そもそものポインタの理解を深めるという目的なら、FILE構造体の中身はこれ以上深入りする必要はないね。
FILE構造体は初心者が真っ先に触れるものの一つだけどちょっと特殊な存在だね。
827デフォルトの名無しさん (ワッチョイ 7f61-IRNk)
2020/05/05(火) 00:06:58.87ID:NEWGqmtJ0 FILE構造体の中身は標準ライブラリの実装によって違うんだから深追いしても無駄なだけ
FILE *fp;はそもそもfopenで帰ってきたものを他のファイル操作関数に渡すだけの使い方しかしないんだからポインタを理解する教材に向いてない
FILE *fp;はそもそもfopenで帰ってきたものを他のファイル操作関数に渡すだけの使い方しかしないんだからポインタを理解する教材に向いてない
>>825
lseek() の返り値を保存するんですね、返り値には気がつきませんでした
lseek() の返り値を保存するんですね、返り値には気がつきませんでした
829デフォルトの名無しさん (ワッチョイ e77b-kZrw)
2020/05/05(火) 05:40:45.15ID:ifa9JNiv0 構造体 FILE は普通はポインタの形でしか使わないから
ユーザーが見るヘッダではopaqueかも知れないしね正ちゃん。
>>817
「ポインタ変数には“変数のアドレス”が記録される」っていう
素朴な理解でしばらく進められないかな。
&a は「変数aのアドレスを得る」
*p は「ポインタ変数pが指しているアドレスから内容を取り出す」
ユーザーが見るヘッダではopaqueかも知れないしね正ちゃん。
>>817
「ポインタ変数には“変数のアドレス”が記録される」っていう
素朴な理解でしばらく進められないかな。
&a は「変数aのアドレスを得る」
*p は「ポインタ変数pが指しているアドレスから内容を取り出す」
830デフォルトの名無しさん (ワッチョイ bf8c-Sf3c)
2020/05/05(火) 06:30:19.59ID:nQMNje/J0 初心者は最初にシェルスクリプトでプログラムを固めた方がいいよ。
831デフォルトの名無しさん (ワッチョイ df93-BhcZ)
2020/05/05(火) 07:21:12.68ID:H58nk9am0 823
829
830
みなさま、アドバイスどうもありがとうございます。
一個一個理解してスキルを身につけていきたいと思います。
829
830
みなさま、アドバイスどうもありがとうございます。
一個一個理解してスキルを身につけていきたいと思います。
832デフォルトの名無しさん (ワッチョイ c7e3-4AVG)
2020/05/05(火) 07:45:39.83ID:q3hMRGAJ0 コメント失礼します
年収200万、一年ごとに5%上がりさらに10万円あがる20年後の給料は?と言う問題と、2時間格闘したのですが全くわかりません。
whileを使って何度やってもエラーが出ます
年収200万、一年ごとに5%上がりさらに10万円あがる20年後の給料は?と言う問題と、2時間格闘したのですが全くわかりません。
whileを使って何度やってもエラーが出ます
833デフォルトの名無しさん (スップ Sd7f-rsUV)
2020/05/05(火) 07:51:08.70ID:77z9bUn/d >>832
エラーの出るソースコードを見せてくれないと何もできないよ
エラーの出るソースコードを見せてくれないと何もできないよ
834デフォルトの名無しさん (ワッチョイ 07b3-wl64)
2020/05/05(火) 07:54:39.70ID:rB6guZqB0 中学の数学の問題みたい
835デフォルトの名無しさん (ワッチョイ c7e3-NlPP)
2020/05/05(火) 08:38:22.00ID:q3hMRGAJ0 >>832
(repl):3: syntax error, unexpected '=', expecting end-of-input
x*1.05=+100000
こんなのが出ます
(repl):3: syntax error, unexpected '=', expecting end-of-input
x*1.05=+100000
こんなのが出ます
836デフォルトの名無しさん (ワッチョイ a7f9-h83k)
2020/05/05(火) 08:42:10.15ID:93R0w8QG0 普通にforでいいだろ、なんでwhile
whileでfor書けるけどさ
whileでfor書けるけどさ
837デフォルトの名無しさん (スップ Sd7f-rsUV)
2020/05/05(火) 08:44:21.30ID:77z9bUn/d838デフォルトの名無しさん (ワッチョイ 07b3-wl64)
2020/05/05(火) 08:45:28.28ID:rB6guZqB0 1行ではできない
の意味がわからん
の意味がわからん
839デフォルトの名無しさん (ワッチョイ a7f9-h83k)
2020/05/05(火) 08:50:35.47ID:93R0w8QG0840デフォルトの名無しさん (ワッチョイ 07b3-wl64)
2020/05/05(火) 08:56:34.04ID:rB6guZqB0841デフォルトの名無しさん (ワッチョイ df79-h83k)
2020/05/05(火) 09:21:45.17ID:yvmW06JI0 亀だがみんなFILE構造体FILE構造体と呼んでるが
FILE型は構造体かどうかすら規定されてなかった記憶
FILE型は構造体かどうかすら規定されてなかった記憶
842デフォルトの名無しさん (ワッチョイ df47-ts7H)
2020/05/05(火) 09:30:09.69ID:3UIwTLmD0 >>841 そうだね。規格見てきた。
> ... an object type capable of recording all the information needed to control a stream, including ...
> ... an object type capable of recording all the information needed to control a stream, including ...
843デフォルトの名無しさん (スップ Sd7f-rsUV)
2020/05/05(火) 09:53:01.97ID:77z9bUn/d https://ideone.com/SwC3g6
スマホで書いたから見づらいのは許して
スマホで書いたから見づらいのは許して
844デフォルトの名無しさん (ワッチョイ dff8-av+H)
2020/05/05(火) 12:43:31.47ID:IcOCoxT/0 自宅待機中の課題なんだろうけど、先が思いやられるな
845デフォルトの名無しさん (ワッチョイ c7e3-NlPP)
2020/05/05(火) 13:25:50.40ID:q3hMRGAJ0 >>843
わざわざ丁寧にありがとうございます!
わざわざ丁寧にありがとうございます!
846デフォルトの名無しさん (ワッチョイ dfa5-fzHW)
2020/05/05(火) 13:36:18.22ID:JDagEH9a0 FILEは紙テープ時代の仕様を引き摺ってるからね
しょうがないね
しょうがないね
847デフォルトの名無しさん (ワッチョイ e7ca-Rrpt)
2020/05/05(火) 14:21:07.04ID:ZggaRwfV0848デフォルトの名無しさん (ワッチョイ 67da-QzNg)
2020/05/05(火) 14:38:54.54ID:Bvt0+Nbg0 >>847
その計算式だと毎年の10万が復利の枠外になってしまうのでは?
その計算式だと毎年の10万が復利の枠外になってしまうのでは?
849デフォルトの名無しさん (ワッチョイ 67da-QzNg)
2020/05/05(火) 14:41:31.81ID:Bvt0+Nbg0 とうか10万が1年分しか反映されないな
850デフォルトの名無しさん (ワッチョイ e7ca-Rrpt)
2020/05/05(火) 14:54:18.83ID:ZggaRwfV0 >>848
あぁ、20年後に10万追加されるってことじゃないのか
あぁ、20年後に10万追加されるってことじゃないのか
851デフォルトの名無しさん (スップ Sd7f-rsUV)
2020/05/05(火) 15:04:19.69ID:77z9bUn/d 20年目ではなく20年後なのでpowするなら20じゃないと
852デフォルトの名無しさん (スプッッ Sd7f-wl64)
2020/05/05(火) 15:11:01.35ID:oj0p8Curd おまいら中学生でも出来るぞ
853デフォルトの名無しさん (ワッチョイ 5fbd-NlPP)
2020/05/05(火) 18:12:23.92ID:ekADkGWO0 なぜ、fopenは"fp"でポインタ受け取り、fopen_sは"&fp"でポインタを受け取るのか分かりません。
定義?を見て、見極める方法はありますか?
fopen_sの定義に、引数として"FILE** pFile"を指定されているとこに、"&fp"が入るのは何故ですか?
他の命令でも*fp、fp、&fpのどれを入れるのか判断がつきません…。
<プログラム例>
FILE *fp
fp=fopen("aiueo.txt","rb");
fopen_s(&fp,"aiueo.txt","rb") …★
<fopenの定義>
errno_t fopen_s(
FILE** pFile,
const char *filename,
*mode
);
語彙力が乏しいのでわかりにくくて大変申し訳ございません。
定義?を見て、見極める方法はありますか?
fopen_sの定義に、引数として"FILE** pFile"を指定されているとこに、"&fp"が入るのは何故ですか?
他の命令でも*fp、fp、&fpのどれを入れるのか判断がつきません…。
<プログラム例>
FILE *fp
fp=fopen("aiueo.txt","rb");
fopen_s(&fp,"aiueo.txt","rb") …★
<fopenの定義>
errno_t fopen_s(
FILE** pFile,
const char *filename,
*mode
);
語彙力が乏しいのでわかりにくくて大変申し訳ございません。
854蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdff-wyJ8)
2020/05/05(火) 18:16:13.22ID:NHsraqIFd fpの型はFILE*だよね。それに&をつけるとFILE**型になる。
855蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdff-wyJ8)
2020/05/05(火) 18:20:26.43ID:NHsraqIFd FILE**型の仮引数はFILE*型を受け取れる。FILE*の扱いは従来の入出力関数と同じ。
856デフォルトの名無しさん (ワッチョイ e701-h83k)
2020/05/05(火) 18:35:00.87ID:GarexHwt0 errorno 使わずに戻り値で異常を伝えるために & で受けてるのか
857デフォルトの名無しさん (ワッチョイ 5fbd-NlPP)
2020/05/05(火) 18:42:13.15ID:ekADkGWO0 >>854-855
ありがとうございます。
以下の理解でよろしいのでしょうか?
(1)変数FILE* fpの場合
・"*fp"(FILE型?)
・"fp"(FILE*型)
・"&fp"(FILE**型)
(2)変数FILE**fpの場合
・"**fp"(FILE型?)
・"*fp"(FILE*型)
・"fp"(FILE**型)
・"&fp"(FILE***型)
変数に付ける"*"の数を増やすと、逆に型の"*"が減るのはなんか気持ち悪いんですね…
ありがとうございます。
以下の理解でよろしいのでしょうか?
(1)変数FILE* fpの場合
・"*fp"(FILE型?)
・"fp"(FILE*型)
・"&fp"(FILE**型)
(2)変数FILE**fpの場合
・"**fp"(FILE型?)
・"*fp"(FILE*型)
・"fp"(FILE**型)
・"&fp"(FILE***型)
変数に付ける"*"の数を増やすと、逆に型の"*"が減るのはなんか気持ち悪いんですね…
859デフォルトの名無しさん (ワッチョイ 5fbd-NlPP)
2020/05/05(火) 20:26:30.94ID:ekADkGWO0 >>858
ありがとうございます。
型側と変数側で"*"を奪い合ってるイメージをすると覚えやすいかなと感じました。
int型:値そのものを入れるイメージ
int*型:値が格納されているアドレスを入れるイメージ(ポインタ)
int * p;
*p = 1; (1つしかない"*"を変数側に付けてしまったので、int型となり"*p"には値が入る。)
p=&hensu; (変数側に"*"を付けてないので、int*型となり、"p"にはアドレス番号が入る)
ありがとうございます。
型側と変数側で"*"を奪い合ってるイメージをすると覚えやすいかなと感じました。
int型:値そのものを入れるイメージ
int*型:値が格納されているアドレスを入れるイメージ(ポインタ)
int * p;
*p = 1; (1つしかない"*"を変数側に付けてしまったので、int型となり"*p"には値が入る。)
p=&hensu; (変数側に"*"を付けてないので、int*型となり、"p"にはアドレス番号が入る)
860デフォルトの名無しさん (ワッチョイ df52-dhD/)
2020/05/05(火) 20:48:34.53ID:J1ERvQ2q0 >>859
覚え方は色々あると思うけど、俺は以下の方法がオススメ。
int i; → iがint型の値になる。iはint型の変数。
int *p; → *pがint型の値になる。
つまりpは*を付けてint型の値になる、すなわちp自信はint型を指すポインタ (=pはint*型の変数。)
覚え方は色々あると思うけど、俺は以下の方法がオススメ。
int i; → iがint型の値になる。iはint型の変数。
int *p; → *pがint型の値になる。
つまりpは*を付けてint型の値になる、すなわちp自信はint型を指すポインタ (=pはint*型の変数。)
861デフォルトの名無しさん (ワッチョイ 2701-tcyL)
2020/05/05(火) 21:32:51.06ID:FuU+hT+R0 俺の覚え方はこうだな
&:メモリの位置(アドレス)を取り出す操作
*:メモリの位置に記録されている値を取り出す操作
型:値が格納されているメモリの幅を示す
※例えばint型は4バイトなのであるint型のポインターが0x0000を指していたら
メモリの0x0000〜0x0031に格納されている値が対象となるデータ
int型ポインターでなくchar型ポインターだとしたら
メモリの0x0000〜0x0001に格納されている値が対象となるデータ
&:メモリの位置(アドレス)を取り出す操作
*:メモリの位置に記録されている値を取り出す操作
型:値が格納されているメモリの幅を示す
※例えばint型は4バイトなのであるint型のポインターが0x0000を指していたら
メモリの0x0000〜0x0031に格納されている値が対象となるデータ
int型ポインターでなくchar型ポインターだとしたら
メモリの0x0000〜0x0001に格納されている値が対象となるデータ
862デフォルトの名無しさん (ワッチョイ 2701-tcyL)
2020/05/05(火) 21:36:39.09ID:FuU+hT+R0863デフォルトの名無しさん (ワッチョイ 2701-tcyL)
2020/05/05(火) 21:43:41.89ID:FuU+hT+R0 >>861
*については2つ意味があるとして覚えているわ(この認識が合ってるのかは分からん)
変数宣言時の*の意味:宣言した変数がポインターであることを示す
それ以外の*:メモリの位置に記録されている値を取り出す操作
ポインター:メモリの位置を保存するための変数
ダブルポインター:(ポインターの)メモリの位置を保存するための変数
トリプルポインター:(ダブルポインターの)メモリの位置を保存するための変数
・・・・以下略
*については2つ意味があるとして覚えているわ(この認識が合ってるのかは分からん)
変数宣言時の*の意味:宣言した変数がポインターであることを示す
それ以外の*:メモリの位置に記録されている値を取り出す操作
ポインター:メモリの位置を保存するための変数
ダブルポインター:(ポインターの)メモリの位置を保存するための変数
トリプルポインター:(ダブルポインターの)メモリの位置を保存するための変数
・・・・以下略
864デフォルトの名無しさん (アウアウエー Sa9f-kSwD)
2020/05/05(火) 21:43:43.86ID:fevQ7qkha fopen_s では、*fp を引数として参照渡ししてるからだよね、関数側で書き換えてもらうために
int i; を &i で参照で渡して、i を書き換えてもらうように、ポインタを渡して fopen_s で内容を書き換えてもらっている
int i; を &i で参照で渡して、i を書き換えてもらうように、ポインタを渡して fopen_s で内容を書き換えてもらっている
865デフォルトの名無しさん (ワッチョイ e7ca-Rrpt)
2020/05/05(火) 22:05:47.08ID:ZggaRwfV0 ポインタの覚え方もさることながら、型の修飾もどうだったかすぐ忘れるw
値を指し示す const ポインタなのか、const な値を指し示すポインタなのか、その両方なのか、それらの書き分けするのに毎回 google に聞いてる。
多重ポインタとか関数ポインタとか volatile なんかも組み合わされてくると、書けはしてももはや読める自信が無いw
値を指し示す const ポインタなのか、const な値を指し示すポインタなのか、その両方なのか、それらの書き分けするのに毎回 google に聞いてる。
多重ポインタとか関数ポインタとか volatile なんかも組み合わされてくると、書けはしてももはや読める自信が無いw
866デフォルトの名無しさん (ワッチョイ df0e-ts7H)
2020/05/05(火) 22:36:47.41ID:w8UzBWRO0867デフォルトの名無しさん (ワッチョイ df0e-ts7H)
2020/05/05(火) 22:38:28.76ID:w8UzBWRO0 >>832
C関係ないから余所行きな
C関係ないから余所行きな
868デフォルトの名無しさん (ドコグロ MM1b-4Orb)
2020/05/05(火) 22:48:35.43ID:n0fzAd1LM869デフォルトの名無しさん (スッップ Sdff-7QW2)
2020/05/05(火) 23:47:03.47ID:gMlNnRrSd なぜだか832が自動であぼーん
870デフォルトの名無しさん (ワッチョイ 6aad-48kr)
2020/05/06(水) 00:52:01.23ID:izcxg96Z0 >>822
FILE型についてはわざと中身を隠蔽していると思って良い。
オブジェクト指向の言語ならクラス変数が全てprivateになってるのと同じようなもの。で、そういう変数の読み書きは専用のメソッドを通して行う。
何故そうしているのかというと、外部から勝手に書き換えられたくないからだ。書き換えられると正常な動作を保証できなくなるということでもある。
FILE型についてはわざと中身を隠蔽していると思って良い。
オブジェクト指向の言語ならクラス変数が全てprivateになってるのと同じようなもの。で、そういう変数の読み書きは専用のメソッドを通して行う。
何故そうしているのかというと、外部から勝手に書き換えられたくないからだ。書き換えられると正常な動作を保証できなくなるということでもある。
871デフォルトの名無しさん (ワッチョイ ea0e-oySJ)
2020/05/06(水) 07:01:26.49ID:Ye566tnt0872デフォルトの名無しさん (ドコグロ MMbb-6mzC)
2020/05/06(水) 07:22:53.41ID:AY471CJRM873デフォルトの名無しさん (ワッチョイ ea0e-oySJ)
2020/05/06(水) 07:48:12.19ID:Ye566tnt0 >>872
書いてある内容そのままなら
http://www.kumei.ne.jp/c_lang/index_sdk.html
ここに書いてある内容のどこに
>>779がCではなくC++を憶えないと
理解できないコードがあるのか例示してくれ
失言ならとっとと引っ込めろ
逃げてる限り絶対に許さんぞ
書いてある内容そのままなら
http://www.kumei.ne.jp/c_lang/index_sdk.html
ここに書いてある内容のどこに
>>779がCではなくC++を憶えないと
理解できないコードがあるのか例示してくれ
失言ならとっとと引っ込めろ
逃げてる限り絶対に許さんぞ
874デフォルトの名無しさん (ワッチョイ 8a47-oySJ)
2020/05/06(水) 08:09:42.99ID:8YawtAIF0 > CではなくC++を憶えないと
・・・誰もそんなこと言ってなくね?こわいわ。
・・・誰もそんなこと言ってなくね?こわいわ。
875デフォルトの名無しさん (ワッチョイ ea0e-oySJ)
2020/05/06(水) 08:14:38.70ID:Ye566tnt0 strcmp的な「言ってない」で逃げたいの見え見えだな
逃げればいいじゃん、嘲笑ってやるぜ
逃げればいいじゃん、嘲笑ってやるぜ
876蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd8a-cHSE)
2020/05/06(水) 08:22:59.32ID:P0iwnu8zd コメントはC++スタイルだが、他に特にC++特有のものはなかった。
877蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd8a-cHSE)
2020/05/06(水) 08:24:53.54ID:P0iwnu8zd ただ、無駄なキャスト(LPCSTR)が気になる。
878デフォルトの名無しさん (ワッチョイ 268c-Ds/W)
2020/05/06(水) 08:39:08.38ID:yZWcrGyp0 >>878
4 種類もあるのですか…
そのうちのひとつになるだろうのものは書いたことがあります
https://mevius.5ch.net/test/read.cgi/tech/1434079972/36
4 種類もあるのですか…
そのうちのひとつになるだろうのものは書いたことがあります
https://mevius.5ch.net/test/read.cgi/tech/1434079972/36
880デフォルトの名無しさん (アウアウエー Sae2-jgrQ)
2020/05/06(水) 11:10:31.35ID:q6Rk1GB6a 本来Cでは「二次元配列」と呼ばれないものまで
二次元配列の4種類!(キリっ)とか紹介するのは非常にまずいと思う
二次元配列の4種類!(キリっ)とか紹介するのは非常にまずいと思う
881デフォルトの名無しさん (ドコグロ MM22-6mzC)
2020/05/06(水) 15:21:29.55ID:+SMDQMnPM882デフォルトの名無しさん (ワッチョイ ea0e-oySJ)
2020/05/06(水) 16:17:32.30ID:Ye566tnt0 >>881
では何故俺が792で「猫でもわかる」はCだと言ったことに対して
拡張子がcppだなどと絡んできた?
779 Win32APIを学ぶにはCとC++どっちを学ぶべき?
780 Win32APIはCだ(猫でものリンクを貼る)
786 むしろC++を知らないほうがいい、Cからやれ
795 「猫でもわかる」はCだ
796 C++のクラスを使ってない、拡張子はcppだ
この流れで「猫でもわかる」がC++だと主張してないとぬかすなら
アホは黙ってろ
では何故俺が792で「猫でもわかる」はCだと言ったことに対して
拡張子がcppだなどと絡んできた?
779 Win32APIを学ぶにはCとC++どっちを学ぶべき?
780 Win32APIはCだ(猫でものリンクを貼る)
786 むしろC++を知らないほうがいい、Cからやれ
795 「猫でもわかる」はCだ
796 C++のクラスを使ってない、拡張子はcppだ
この流れで「猫でもわかる」がC++だと主張してないとぬかすなら
アホは黙ってろ
883デフォルトの名無しさん (ワッチョイ ea0e-oySJ)
2020/05/06(水) 16:19:34.86ID:Ye566tnt0 自分の言葉に責任を持たない社会のクズは
このあと「それ、俺じゃない」とぬかす
このあと「それ、俺じゃない」とぬかす
884デフォルトの名無しさん (ドコグロ MM8a-6mzC)
2020/05/06(水) 18:37:10.19ID:UHy6F9xlM >>882-883
> C++のクラスとかを使ってないだけ
> そもそもサンプルコードのファイル名はsample01.cppとかだからC++としてビルドしてるし
と言う「事実」を書いてるだけだよw
C/C++の両方でビルドできるコードの存在を知らんのか?
> C++のクラスとかを使ってないだけ
> そもそもサンプルコードのファイル名はsample01.cppとかだからC++としてビルドしてるし
と言う「事実」を書いてるだけだよw
C/C++の両方でビルドできるコードの存在を知らんのか?
885デフォルトの名無しさん (ワッチョイ ea0e-oySJ)
2020/05/07(木) 06:50:59.58ID:Xvq6sZ7Q0 >>884
そうか、ではアホは黙ってろ
そうか、ではアホは黙ってろ
886デフォルトの名無しさん (ドコグロ MM22-6mzC)
2020/05/07(木) 07:26:49.56ID:MuxY24VvM 理解力のない>>885撃沈!
チーンw
チーンw
887デフォルトの名無しさん (ワッチョイ ea0e-oySJ)
2020/05/07(木) 08:00:10.49ID:Xvq6sZ7Q0 黙ってろと言ったはずだ
端っから内容のないゴミレスして突っ込まれて
とぼけるしかなかったボーガスは身の程をわきまえろ
端っから内容のないゴミレスして突っ込まれて
とぼけるしかなかったボーガスは身の程をわきまえろ
888デフォルトの名無しさん (ワッチョイ 3fb3-oFD5)
2020/05/07(木) 08:13:45.44ID:wkYaXeHy0 会話が噛み合わないのは両方の責任だと思う
889デフォルトの名無しさん (ドコグロ MMcf-6mzC)
2020/05/07(木) 08:27:14.54ID:mY1dxeUWM 自己紹介乙w
890デフォルトの名無しさん (ワッチョイ ea0e-oySJ)
2020/05/07(木) 08:31:41.78ID:Xvq6sZ7Q0 何も意図せずに「猫でもわかる」は拡張子がcppだと譫言をぬかすのは
ガキが何のボタンかわからんものを押しちまうのと同じ
自分が何をしでかしたか理解してない
ガキが何のボタンかわからんものを押しちまうのと同じ
自分が何をしでかしたか理解してない
891デフォルトの名無しさん (ドコグロ MM8a-6mzC)
2020/05/07(木) 09:19:09.13ID:85L7nIzNM 事実を指摘されて発狂
譫言言ってるのはお前だろw
譫言言ってるのはお前だろw
892デフォルトの名無しさん (スッップ Sd8a-Sbo7)
2020/05/07(木) 09:30:29.84ID:iq2XxwEdd x=f(x)で、f(x)が複雑でx=定数の形にするのが大変なんで、数値計算でxの値をだしたいんですが、いい方法は有りますでしょうか
893デフォルトの名無しさん (ワッチョイ 8a47-oySJ)
2020/05/07(木) 09:51:47.65ID:Bo7tbMN60894デフォルトの名無しさん (ワッチョイ 33f9-gIrT)
2020/05/07(木) 09:51:54.21ID:FGS63TE90895デフォルトの名無しさん (スッップ Sd8a-Sbo7)
2020/05/07(木) 10:22:21.57ID:iq2XxwEdd896デフォルトの名無しさん (ワッチョイ bb69-7oqX)
2020/05/07(木) 10:24:21.75ID:khGNNtcv0 f(x)=任意の数値 となる x を数値演算で探せ
g(x) = f(x) - 任意の数値 として g(x) = 0 となる x を数値演算で探す
※ 任意の数値が変数 x でも差しさわりはない f(x)-x = 0 となる x を探索する話に帰着
あとは >>894 の通り
ニュートン・ラプソン法なり 2分法なりで
g(x) = f(x) - 任意の数値 として g(x) = 0 となる x を数値演算で探す
※ 任意の数値が変数 x でも差しさわりはない f(x)-x = 0 となる x を探索する話に帰着
あとは >>894 の通り
ニュートン・ラプソン法なり 2分法なりで
897デフォルトの名無しさん (スプッッ Sd8a-oFD5)
2020/05/07(木) 10:28:56.33ID:PvsEcGe8d 解析的な解法
微分可能
連続性
全ての解が必要かどうか
などで最適な解法はいくらでも変わる
無条件でニュートン法を勧めるヤツはアホ
微分可能
連続性
全ての解が必要かどうか
などで最適な解法はいくらでも変わる
無条件でニュートン法を勧めるヤツはアホ
898デフォルトの名無しさん (ワッチョイ ea0e-oySJ)
2020/05/07(木) 10:32:32.77ID:Xvq6sZ7Q0899デフォルトの名無しさん (ワッチョイ bb69-7oqX)
2020/05/07(木) 10:34:45.28ID:khGNNtcv0 あとは自分に見合ったのを探して で
900デフォルトの名無しさん (スプッッ Sd8a-oFD5)
2020/05/07(木) 10:35:33.37ID:PvsEcGe8dレス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 【熊本】園児に強制性交か 保育所勤務の男を逮捕「性的な欲望が我慢できなかった」警察は余罪を調べる [七波羅探題★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★]
- 空自機レーダー照射、音声データ公開 中国 [蚤の市★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 【サッカー】上田綺世の活躍は「一過性」 15戦18発も…オランダ英雄は懐疑的な姿勢「確信に至っていない」 [ゴアマガラ★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」★3 [ぐれ★]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ [597533159]
- 中国の日本向けレアアースの輸出止まる、高市のせいで日本終了のお知らせ [931948549]
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ180
- 🏡
- 韓国政府、高市早苗の「竹島領土」発言にブチギレwwwwwwwwwwwwwwww [834922174]
- 高市早苗「竹島は日本領土」 [834922174]
