C言語なら俺に聞け 142 [無断転載禁止]©2ch.net

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 8a6f-bDrV)2017/08/10(木) 20:21:23.44ID:hEocmkh50
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/


http://mevius.2ch.net/test/read.cgi/tech/1500293207/
http://www.geocities.jp/c_cpp_cs/about_c/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

0952デフォルトの名無しさん (ワッチョイ c575-G561)2017/10/25(水) 19:16:50.46ID:Ho4Id2OA0
そういうことか
全然分からんかった
引数に受け渡されたポインタ変数のコピーに新しく確保したメモリのアドレス入れても呼び出し元のポインタ変数はなんも変化しないのか

0953デフォルトの名無しさん (ワッチョイ c5b3-VJ/D)2017/10/25(水) 19:21:03.77ID:BohOgQqE0
引数で int の変数を書き換えても 呼び出し元には伝わらない それの延長線
int を data_t* に読み替えれば同じ理屈よ

0954デフォルトの名無しさん (ワッチョイ cee7-LaKm)2017/10/25(水) 20:39:40.86ID:Ls3qnFv30
俺の頭じゃあ理解できなかったわアロー関数は苦手だ、ここには天才がやっぱいるわ

0955デフォルトの名無しさん (ワッチョイ d6e8-bcII)2017/10/25(水) 22:59:11.01ID:SHE9E59e0
この程度でプロとか天才とかw レベル低っ

0956デフォルトの名無しさん (ワッチョイ 7ad2-eNpY)2017/10/25(水) 23:31:22.55ID:A9sEwxck0
追い詰められてる時って、ちょっとしたことを見落としたりしがちだし。
そういうときにちょっとしたつまらない問題点を指摘してくれる人が神様に思えることはある。
本当に何でこれに気づかない?って問題に延々と気づかないことあるから。

0957デフォルトの名無しさん (ワッチョイ 7181-/MqV)2017/10/26(木) 01:05:20.57ID:WmOJzpQL0
実務の世界だと、開発リーダーにとっては、この程度はさらさらと書いて欲しいと思うだろうな
この辺の考え方が理解できてないと、構造体を使ったリスト構造、木構造が作れないと思う

0958デフォルトの名無しさん (ワッチョイ 7102-rVGZ)2017/10/26(木) 01:22:11.08ID:FPgm8C1h0
急に語り出したぞ、おい

0959デフォルトの名無しさん (ワッチョイ 719f-a4mA)2017/10/26(木) 03:22:11.49ID:kwyo2eDl0
リスト構造、木構造という言葉がわからなかったのかな?

0960デフォルトの名無しさん (ワッチョイ 1b11-mlZ6)2017/10/26(木) 03:35:02.17ID:ByFyiJTd0
分からなくてもググれば速攻定義出ますがな

0961デフォルトの名無しさん (ワッチョイ 9193-cGPg)2017/10/26(木) 06:24:41.35ID:8UQnYlEC0
>>944 からの流れだとすると、実務で使う人とは感じなかったな。
専門外の学生さんが単位を取るために四苦ハック、
進級できたら思い出しもしない、という立場からの質問だろうと。

0962デフォルトの名無しさん (ガックシ 068b-rVGZ)2017/10/26(木) 10:26:24.17ID:Z8IKw2VS6
リスト構造木構造とか理系大学の情報系科目で誰でもやるがな
こんなところ見てる奴が知らんわけないだらアホ

0963デフォルトの名無しさん (ササクッテロラ Sp9d-aRZk)2017/10/26(木) 10:46:18.77ID:DmfMCHFwp
リストもツリーも基本の構造は一緒だろ。
ただ、鎖ね繋がってる数が違うから、
扱いが違うだけでな。

0964デフォルトの名無しさん (アウアウカー Saed-Lg7W)2017/10/26(木) 12:26:11.84ID:nuX2FTeTa
文系経済学部ですわ

0965デフォルトの名無しさん (ドコグロ MM3d-DDuF)2017/10/26(木) 12:46:06.22ID:oyaJ8gC3M
>>962
> こんなところ見てる奴が知らんわけないだらアホ
>>952みたいな奴もいるのに何を言ってるんだよ w

0966デフォルトの名無しさん (ガックシ 068b-rVGZ)2017/10/26(木) 12:51:34.13ID:jbwuNtau6
>>965
リスト構造とか知ってるからってポインタ受け渡しのトリックに気付くとは限らんだろ

0967デフォルトの名無しさん (ワッチョイ ebea-ZNPd)2017/10/26(木) 13:41:10.56ID:VaLFaSbf0
怪しくなったら戻り値で返せ

0968デフォルトの名無しさん (ブーイモ MMc5-nyI1)2017/10/26(木) 14:50:55.37ID:ujDNQjK/M
そういうときに限って二つ返したくなる

0969デフォルトの名無しさん (ワッチョイ 1be7-J/p5)2017/10/26(木) 18:29:14.01ID:l+WAoJAx0
自分の知ってる関数解ってる宣言の仕方ならわかるけどさ解らない奴使ってたらもう変数が動いてるかわからんだろう
そうなったらもう謎でコードなんか読めないだろ?

0970デフォルトの名無しさん (ワッチョイ ebe8-nu9H)2017/10/26(木) 18:40:00.02ID:6866r+hk0
んなこたぁ、ない

0971デフォルトの名無しさん (ワッチョイ d1b3-ZNPd)2017/10/26(木) 18:44:09.81ID:AI1MxGuX0
引数の書き戻し系は 渡すときに値を必要としてるのかどうかは仕様次第なので 少し気を使う

0972デフォルトの名無しさん (ササクッテロラ Sp9d-jmG0)2017/10/26(木) 20:03:01.42ID:DmfMCHFwp
それより、そのアドレスはアクセス権のある場所を指してるんだよな?

0973デフォルトの名無しさん (ドコグロ MM3d-DDuF)2017/10/26(木) 21:41:04.91ID:oyaJ8gC3M
>>966
レベルの問題
> リスト構造とか知ってるからってポインタ受け渡しのトリックに気付くとは限らんだろ
そんな奴がいないとは言わないがそう言う奴はごろごろいるとは思えないだろ

0974デフォルトの名無しさん (ワッチョイ d175-rVGZ)2017/10/26(木) 21:42:34.03ID:Fjma9sq90
とりまリスト構造なんて誰でもしってること
>>959のレスはイミフ

0975デフォルトの名無しさん (ワッチョイ 719f-Akqv)2017/10/27(金) 03:11:40.50ID:QY+Fa/Ak0
>>966
これはトリック、か?

0976デフォルトの名無しさん (ワッチョイ 9193-cGPg)2017/10/27(金) 06:49:46.56ID:VPed4ksO0
「関数の引数に値渡ししかないから、
ポインタを渡すことで呼出側の変数の内容を関数側で変更する」
というのが他の言語と比較した場合、C特有のトリックと呼べるかも。

もちろん、Cの村では当然かつ基本のことだけど。

0977デフォルトの名無しさん (ワッチョイ 1387-jmG0)2017/10/27(金) 08:36:39.71ID:JYNAFOfl0
たくさん値を返したいなら、
戻り値を型宣言した構造体にしたらいい。

0978デフォルトの名無しさん (ワッチョイ 0b23-20SA)2017/10/27(金) 09:39:08.11ID:a5gmSSmH0
残念だったな、トリックだよ

0979デフォルトの名無しさん (ワッチョイ 1be7-DRuk)2017/10/27(金) 09:42:57.69ID:Q7q08ysx0
>>977
autoでもできるのですか?

0980デフォルトの名無しさん (ササクッテロラ Sp9d-jmG0)2017/10/27(金) 09:57:16.24ID:CUGbjFhkp
ああ、昔はauto変数に取った構造体を戻り値にして割り込み系で散々な目に遭ったよな。
あれは言語仕様に沿って無いコンパイラが悪いんだがな。

0981デフォルトの名無しさん (ワッチョイ ebea-ZNPd)2017/10/27(金) 10:00:31.70ID:v/FEPkkV0
古いコンパイラではNGだったけど
構造体の引数での値渡し、戻り値での値戻しは可能

0982デフォルトの名無しさん (ササクッテロラ Sp9d-jmG0)2017/10/27(金) 10:18:09.15ID:CUGbjFhkp
古くなくてもニッチな環境では要注意だ。
コンパイラの吐き出すコードが言語仕様に沿って無い場合がある。

0983デフォルトの名無しさん (ワッチョイ 13b3-DDuF)2017/10/27(金) 10:27:32.22ID:8fSPZcAJ0
>>976
トリックと言うか他の言語ではコンパイラがやってることをアセンブラやCでは明示的に書くと言うだけ

0984デフォルトの名無しさん (ワッチョイ ebea-ZNPd)2017/10/27(金) 13:06:16.96ID:v/FEPkkV0
>>982
なんてこったw
ニッチな環境だとメンテもされてないことあるだろうしねー

0985デフォルトの名無しさん (ワッチョイ 138a-gYJi)2017/10/27(金) 15:36:47.12ID:dGyUnw2Y0
ホワイトスミスなんて、printfすら無いような処理系作って
いた人がANSIの役員していて2度びっくり

0986デフォルトの名無しさん (ワッチョイ 1be7-DNJs)2017/10/27(金) 18:41:59.37ID:BvMxy0d+0
C言語のポインタで
int *a;
int b;
a = 10;
これは理解できるんだけど
a = &b;
*a = 10;
これはどうなってるん?aにアドレス入ってるのにどうやって10を送ってるん?

0987デフォルトの名無しさん (ワッチョイ d1b3-ZNPd)2017/10/27(金) 18:47:48.96ID:/LUCvRWS0
> int *a;
> a = 10;
> これは理解できるんだけど
説明できるのなら その先も分かるはず

0988片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd33-+nyC)2017/10/27(金) 18:49:13.82ID:xRxq9X9wd
>>986
> int *a;
> int b;
> a = 10; //エラー。ポインタに整数は代入できない。そもそも全角文字と半角文字を間違っている。
> a = &b;
> *a = 10;
アスタリスク(*)で実体の整数データを手繰り寄せているイメージね。

0989デフォルトの名無しさん (ワッチョイ 1be7-DNJs)2017/10/27(金) 18:55:00.02ID:BvMxy0d+0
>>988
*aで中にあるアドレスで探って送ってるイメージ?

0990片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd33-+nyC)2017/10/27(金) 18:57:22.58ID:xRxq9X9wd
うん。アスタリスクを付ければ、アドレス先への代入になる。

ポインタにゼロ以外の整数は代入できないに訂正。

0991デフォルトの名無しさん (ササクッテロラ Sp9d-jmG0)2017/10/27(金) 19:14:00.54ID:CUGbjFhkp
宣言とフィールドで意味の違う*が悪い。

0992デフォルトの名無しさん (ブーイモ MMc5-nyI1)2017/10/27(金) 19:16:29.79ID:t/XrhBpFM
アーキテクチャとアセンブリ言語勉強するのが早道な気がする

0993デフォルトの名無しさん (ブーイモ MMc5-nyI1)2017/10/27(金) 19:19:35.75ID:t/XrhBpFM
>>991
意味は同じだよ。*aがintだと宣言してるから整合してる。
初期化構文がちょいと怪しいが。

0994デフォルトの名無しさん (ササクッテロラ Sp9d-jmG0)2017/10/27(金) 19:21:42.60ID:CUGbjFhkp
>>993
宣言ではポインタである事を表すが、
フィールドでは、掛け算記号だったり、ポインタの内容だったりするだろ?

0995デフォルトの名無しさん (ワッチョイ 1be7-DNJs)2017/10/27(金) 19:56:47.39ID:BvMxy0d+0
char *c;
int *a;
この二つはポインタだけど使い方が違うのか?

0996片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd33-+nyC)2017/10/27(金) 20:00:41.33ID:xRxq9X9wd
sizeof(*c) == sizeof(char)で、
sizeof(*a) == sizeof(int)だ。

0997デフォルトの名無しさん (マクド FF6d-mlZ6)2017/10/27(金) 20:11:43.60ID:HlvRN0vUF
Cの文法特にポインタ宣言周辺は、
頭が悪いと読めないよう定められてる。

ソフトウェア開発は馬鹿でも手伝わせる
必要があるくらい人手不足なのに、
なんでこんな文法にしたのか不思議。

0998デフォルトの名無しさん (ワッチョイ d171-Lg7W)2017/10/27(金) 20:21:32.42ID:3Ly7XcHr0
えっ、Cの由来を知らないの?

0999片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd33-+nyC)2017/10/27(金) 20:26:24.89ID:xRxq9X9wd
次スレお願い

1000あぼーん (ワッチョイ d1eb-CTXj)2017/10/27(金) 21:22:14.66ID:zFbk1AXy0
あぼーん

10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 78日 1時間 0分 51秒

10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

レス数が1000を超えています。これ以上書き込みはできません。