俺「C言語のポインターって何?」プログラマー「住所みたいなもんだよ」

1 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 14:58:02.840 ID:I2D8Bfhr0
俺はC言語を諦めた
2 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 14:58:34.264 ID:Y+u02K9C0
アドレスだよ
3 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 14:59:51.250 ID:5TWc+MQMr
センス無いのが早めにわかって良かったな
4 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 14:59:55.567 ID:VTt/Xxvh0
*←なるほど
**←??
***←…?w
8 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:03:19.969 ID:kO/E90rCr
>>4
3重ポインタなんて使わんから無視無視
5 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:02:15.628 ID:HIdzpcgX0
オブジェクト指向… …は?
6 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:02:29.997 ID:03p3cE1y0
C言語より先にアセンブリ言語をやればいい
7 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:02:44.888 ID:Y+u02K9C0
C言語は関数は値渡しだから、配列とか操作したい時は参照渡しにしたい時にポインタを使う

基礎はAとBの値を入れ替えするためのswapで説明すると思うんだが

9 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:03:58.205 ID:dUikkHfEM
メモリをイメージすれば難しいことはないと思う
10 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:04:21.596 ID:Tj0tmZZh0
記憶装置の番地
11 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:04:50.964 ID:QM2hm9uaM
矢印
12 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:04:54.308 ID:6JgNhz/td
BASICから勉強しろって言われて勉強したけど何一つ実用的な事無かったわ
13 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:05:11.082 ID:mGsTAALtM
立ち塞がる関数ポインタ
14 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:06:22.338 ID:xZS7/hoL0
C言語の関数は、値しか送れない
returnでは1つしか値を戻せないから2つ以上の変数の数値を変更する場合
変数の値を送る
この時に通常の変数と、アドレスと区別を付ける必要があるからポインタを使う
15 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:07:13.948 ID:xZS7/hoL0
あっ!!完璧だと思ったら間違えた
変数のアドレス(メモリの番地)を送る
17 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:10:17.999 ID:d4AxzY2w0
null pointer exception
18 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:11:36.536 ID:plmkCctm0
>>17
ガッ
19 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:12:33.108 ID:vNpcLOC+M
関数って箱には1つの変数しか入れれない
でも2つ以上入れたいときもある
そういうときは箱の中に保管した場所を書いておいて取ってきてもらう

ってことか?

22 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:16:37.912 ID:xZS7/hoL0
>>19
いやちょと違う
関数ってのは何個でも変数の値を送る事が出来る
でも、変数自体を送ってないから、変数の値を変更して戻せない
int a = 10;//aという箱(変数)に10を入れる
関数(a);//関数にaの値を送る。この時aの変数を送っているのではなく、値しか送っていない
20 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:13:18.875 ID:eivCDW190
ポインタは*つけて宣言するのに*hogeはアドレスじゃなくて実体を指すのがわけわかんなくなる原因だと思う
24 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:18:06.462 ID:x0jr1tjwr
>>20
そこの記号同じにしちゃったのは失敗だよね
まぁバカな一般人が使うことなんて考えてなかったからしょうがないけど
21 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:15:21.331 ID:p3aXYDMdd
5chでいう安価
アドレスはレス番
23 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:16:53.955 ID:03p3cE1y0
どうせバッファーオーバーフローの説明するときにアドレスやスタックの話をするんだから
もう機械語レベルの説明から始めようよ
26 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:19:28.417 ID:xZS7/hoL0
でも関数に変数2個送って、変数の値を変更して戻したい場合
変数の値を関数に送るのではなく
変数が格納されているメモリの番号(アドレス=住所)を直接送っちゃえ☆
ってのがポインタって技術
28 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:22:21.047 ID:xZS7/hoL0
ただ、問題なのが
printf()関数の時と同じで
その変数のメモリの番地ってのは何?いつ決まるの?とか
それは何番なの?とか疑問が大量に出てくるハズ
そもそもどんな時に使うのとか
29 名前:ひみつの名無しさん 投稿日時:2020/09/01(火) 15:22:59.817 ID:x+z26EwX0
俺「マンションの部屋番号みたいなもんだよ」

コメント

タイトルとURLをコピーしました