二次元裏@ふたば

画像ファイル名:1719223113108.png-(62198 B)
62198 B24/06/24(月)18:58:33No.1203899387+ 20:04頃消えます
C言語たのしいよ
このスレは古いので、もうすぐ消えます。
124/06/24(月)19:00:41No.1203900178そうだねx6
ぬるぽ
224/06/24(月)19:02:08No.1203900675+
ポインタとかリテラルって単語が頭に入ってこないんだと思う
324/06/24(月)19:03:27No.1203901211+
ここ3年ほど仕事でC書いてるけど最近const char*とchar* constの違いが理解できるようになってめっちゃ楽しい
424/06/24(月)19:08:06No.1203903127そうだねx5
>ポインタとかリテラルって単語が頭に入ってこないんだと思う
がんばれ
ポインタ理解できないとつらいぞ
524/06/24(月)19:09:10No.1203903615そうだねx3
ポインタのポインタの・・・
624/06/24(月)19:09:51No.1203903893そうだねx2
ポインタはともかくリテラルはわかれよ
724/06/24(月)19:11:14No.1203904498+
>ここ3年ほど仕事でC書いてるけど最近const char*とchar* constの違いが理解できるようになってめっちゃ楽しい
どうちがうのん?
824/06/24(月)19:12:48No.1203905216+
配列型とポインタ型の区別がないってほんと?
924/06/24(月)19:13:35No.1203905579+
ポインタって響きが可愛いよね
声に出して読みたいプログラミングワードトップ3に入ると思うポインタ
1024/06/24(月)19:14:58No.1203906178+
>>ここ3年ほど仕事でC書いてるけど最近const char*とchar* constの違いが理解できるようになってめっちゃ楽しい
>どうちがうのん?
const char*は内容がconstでポインタ自体はconstではないので参照先を変更できる
char* constは内容の書き換えは可能だけど参照先を変更できない
1124/06/24(月)19:15:59No.1203906663+
Javaってまだ見る?
1224/06/24(月)19:16:03No.1203906695+
いやじゃこんな書き方しとうない
1324/06/24(月)19:17:23No.1203907289+
>const char*は内容がconstでポインタ自体はconstではないので参照先を変更できる
const char*は優先度的には(const char)*なのか?
1424/06/24(月)19:18:57No.1203907987+
>配列型とポインタ型の区別がないってほんと?
言語仕様として配列型がメモリ空間上で順番通りに並んでいることが保証されてて配列にアクセスするのにポインタを利用するってだけで区別がないわけじゃない
1524/06/24(月)19:19:45 ID:C4JV2quENo.1203908325+
>配列型とポインタ型の区別がないってほんと?
ポインタ型の変数に配列型の値は代入できるけど逆はできないから区別はされてる
厳密に言えば配列型は文脈に応じて先頭要素を指すポインタとして評価されることになってる
1624/06/24(月)19:19:49No.1203908354+
>Javaってまだ見る?
業界によるよ
俺は組込だけどそもそもJavaに触れたことがないし
1724/06/24(月)19:20:20No.1203908594+
ポインタが色々言われるのはこれで何ができるようになるんだ…って部分が想像しにくいからじゃねぇかなと思う
1824/06/24(月)19:21:37No.1203909178+
想像というかわかったところでやりたくないというか…
1924/06/24(月)19:23:45No.1203910111そうだねx3
結局全てはポインタっていうか
全てはメモリ空間上に展開されたデータだからな…
ポインタでICのピンを直接制御できたりとかCPUの機能を直接いじいじできて楽しいんよ
2024/06/24(月)19:24:48No.1203910588そうだねx1
>ポインタのポインタの・・・
こうなるのはだいたい設計が悪いから設計からやり直せ多段になる意味は薄い
仕事で触ってるならご愁傷様…
2124/06/24(月)19:26:54No.1203911472+
zigとかモダンなC言語的言語あるらしいけどいつかは置き換わるのだろうか
2224/06/24(月)19:29:08No.1203912430+
ポインタの概念は分かるけど使いどころが分からんので一生わからない
2324/06/24(月)19:31:30No.1203913503そうだねx1
端の端の端をちょっと齧った程度だけど
オブジェクト指向が理解できなかった
2424/06/24(月)19:33:16No.1203914323+
>端の端の端をちょっと齧った程度だけど
>オブジェクト指向が理解できなかった
動物インタフェースがあってぇ…
2524/06/24(月)19:34:13No.1203914754+
オブジェクト指向はC言語においては理解する必要ないから…
2624/06/24(月)19:34:59No.1203915108+
>ポインタの概念は分かるけど使いどころが分からんので一生わからない
最初から使えと言われて使えるわけがないというか…
2724/06/24(月)19:35:41No.1203915480そうだねx3
平然とメモリを破壊する禁じられた力
こんな異端術法が基礎扱いされていてはいけない
2824/06/24(月)19:35:53No.1203915560+
A言語とかB言語もあるの?
2924/06/24(月)19:37:06No.1203916156+
DとFはあるの知ってる
3024/06/24(月)19:37:33No.1203916356+
a[5] の代わりに 5[a] って書けるのは知ってる
3124/06/24(月)19:38:04No.1203916573+
たしか関数の引数だとポインタ型と配列型は区別しないんじゃなかったっけ
3224/06/24(月)19:38:10No.1203916629+
>動物インタフェースがあってぇ…
動物!?
3324/06/24(月)19:38:22No.1203916727+
c言語の元になった言語がBだっけ
3424/06/24(月)19:38:40No.1203916865そうだねx2
最初にC勉強したら下手したら他の言語で当然やらないことを平然とやろうとする危険人物になる気がする
3524/06/24(月)19:39:58No.1203917474+
C言語ではchar*でconst char*を受け取れるよって言うと初心者は混乱する
3624/06/24(月)19:40:01No.1203917501+
>最初にC勉強したら下手したら他の言語で当然やらないことを平然とやろうとする危険人物になる気がする
プログラマはすべてを掌握する神であることを前提にした時代の言葉はなあ
3724/06/24(月)19:40:06No.1203917537+
Cより先にJava覚えたせいでC書く時も構造体に関数ポインタ生やしたくなった思い出
普通のCはどう書くものなのか最後までわからなかった
3824/06/24(月)19:41:16No.1203918085+
ポインタ理解して活用できると捗るけどあまりポインタありきで作りたくはない
3924/06/24(月)19:41:23No.1203918147+
>A言語とかB言語もあるの?
A言語はアセンブラ
B言語はこれ
https://ja.m.wikipedia.org/wiki/B%E8%A8%80%E8%AA%9E
4024/06/24(月)19:42:40No.1203918731+
そうはいっても他にBASICかPascalくらいしか選択肢が無かったし…
4124/06/24(月)19:43:41No.1203919241+
安全なRustを使おう
4224/06/24(月)19:44:19No.1203919531+
自力でメモリ管理なんかしたくないからガベコレのある言語しか触りたくない
4324/06/24(月)19:45:12No.1203919975+
Cは触ったことがあったような無かったような…
とりあえず文字列入れるのにわざわざ長さを指定しないといけなくてイラついた覚えがある
4424/06/24(月)19:46:40No.1203920726+
D言語は今どうしてるの
4524/06/24(月)19:46:40No.1203920732+
Rustはシングルスレッドだといいけど並列処理になると恩恵が少なくなると聞いた
4624/06/24(月)19:48:37No.1203921689+
ポインタなんてまだマシだろ
あたり前の顔して出てくるマクロで実装されたlinked listとかforeachのほうがよっぽど混乱する
4724/06/24(月)19:49:55No.1203922260+
未定義動作利用して最適化するって何なんだよ…
普通にエラー吐けよ
4824/06/24(月)19:50:10No.1203922384そうだねx2
ノイマン型コンピューターはメモリーにプログラムもデータも置いた構造だからポインターは基本
4924/06/24(月)19:50:32No.1203922557+
Java触ってからC触ったらJava…お前随分と気が利く奴だったんだな…ってなった
CからJavaに戻ったらえっこんな適当でも動くんですか?!本当に?!ってなった
5024/06/24(月)19:51:01No.1203922793+
しゃあっ!インクリメント!
5124/06/24(月)19:51:24No.1203922981+
アイテムの並べ方でエンディングに飛べるとかポインタは今のほうがわかりやすい
5224/06/24(月)19:51:29No.1203923031+
>安全なRustを使おう
Rust使うぐらいならZig使うよ…
RustはC++の代替だから機能多過ぎるし
5324/06/24(月)19:51:36No.1203923098そうだねx1
>結局全てはポインタっていうか
>全てはメモリ空間上に展開されたデータだからな…
一応突っ込んでおくとこれはあくまでC言語のメモリモデルが仕様として線形になってるというだけで
実際のOSとのやり取りではシステムコールでマップされていないという場合もある
というか昔のでもnear ポインタとか完全に壊れてる
5424/06/24(月)19:51:50No.1203923220+
ポインタの冒険
5524/06/24(月)19:51:57No.1203923273+
書き込みをした人によって削除されました
5624/06/24(月)19:52:02No.1203923311そうだねx3
今日日ポインタなんて使わねーよって感じなんだけど
参照渡し値渡しの挙動がモダンな言語では隠蔽されて出てくるので
どっちなのか意識してないと詰むときある
5724/06/24(月)19:52:10No.1203923376そうだねx1
変数宣言だけして初期化しないとゴミ値が入ってるのビビる
いや理屈からすると当たり前なんだけどC#とかPythonは勝手に0とかで初期化されてたから
5824/06/24(月)19:52:12No.1203923390+
ポインタは理解はできても活用できるレベルにはなれねえな俺はってなる
そういう面倒なのはコンパイラくんがいい感じにやっといてねよろしく!
5924/06/24(月)19:52:50No.1203923675+
コンパイラ最適化オプションがどんどん意味不明になってた昔の現場
6024/06/24(月)19:53:19No.1203923948+
最適化すると動かなくなるプログラムいいよね
6124/06/24(月)19:53:29No.1203924037+
昔だったらアドレス直接突っ込めるから便利だったんだろうな
6224/06/24(月)19:54:29No.1203924541+
>昔だったらアドレス直接突っ込めるから便利だったんだろうな
昔じゃなくても組込だとね
6324/06/24(月)19:55:02No.1203924817+
javaやっているときは複数の戻り値の制御やりやすくして欲しいなぁと思ってたけどC++の参照渡しはちょっと自由すぎてダメだった
6424/06/24(月)19:55:39No.1203925096+
コメントアウトされた文消すとエラー吐くことあるのは特有のやつ?
6524/06/24(月)19:56:21No.1203925409+
>今日日ポインタなんて使わねーよって感じなんだけど
>参照渡し値渡しの挙動がモダンな言語では隠蔽されて出てくるので
>どっちなのか意識してないと詰むときある
これはコピーしたやつだからって気軽にグチャグチャにすると
オリジナルもグチャグチャになってるのいいよね…
6624/06/24(月)19:56:41No.1203925582そうだねx2
>変数宣言だけして初期化しないとゴミ値が入ってるのビビる
>いや理屈からすると当たり前なんだけどC#とかPythonは勝手に0とかで初期化されてたから
それも良し悪しだからな
初期化そのものにコストあるから
6724/06/24(月)19:56:42No.1203925586+
便利ですよね
双方向リスト
6824/06/24(月)19:56:47No.1203925628+
ハードウェアをどこまで意識するかで言語を選ぼう
6924/06/24(月)19:57:04No.1203925764+
>安全なRustを使おう
RustはCの遺産使わず全部Rustで書き直して

>Rust使うぐらいならZig使うよ…
Zigは壊れてるTLS実装直して
7024/06/24(月)19:57:10No.1203925801+
>コメントアウトされた文消すとエラー吐くことあるのは特有のやつ?
だいたい日本語が悪い
7124/06/24(月)19:57:23No.1203925906+
>コメントアウトされた文消すとエラー吐くことあるのは特有のやつ?
文字コードに誤りがあるか未定義動作踏み抜いてるかその辺り
7224/06/24(月)19:57:39No.1203926038そうだねx1
モダンな言語は俺には挙動を把握しきれないので雰囲気で使わざるを得ない
7324/06/24(月)19:57:57No.1203926180+
>コメントアウトされた文消すとエラー吐くことあるのは特有のやつ?
プリプロセッサのバグの場合と文字コードの場合がある
https://qiita.com/shirokuma89dev/items/1e3a01aa8071507850cd
7424/06/24(月)19:58:03No.1203926220+
ラズパイとかArduino流行ってたしむしろ今のほうが使ってる子多いんじゃないか?
7524/06/24(月)19:58:28No.1203926413+
トライグラフいいよね??!
https://ja.wikipedia.org/wiki/%E3%83%88%E3%83%A9%E3%82%A4%E3%82%B0%E3%83%A9%E3%83%95
7624/06/24(月)19:58:30No.1203926425そうだねx1
雰囲気だけでいいのでアセンブラ知っておくとポインタは入りやすい
7724/06/24(月)19:58:31No.1203926440+
文字コードは末尾ごまかすと解決したりする
7824/06/24(月)19:58:34No.1203926459そうだねx3
メモリのゼロフィルって結構重い処理だよね
7924/06/24(月)19:59:05No.1203926670+
そもそもコメントアウトのやつはほとんどのコンパイラでwarning出ると思うんだけどな…
8024/06/24(月)19:59:20No.1203926785+
文字コードと改行コードの問題はいつまで続くのだろうか
8124/06/24(月)20:00:03No.1203927169+
Shift-JISの2byte目の問題はPerlでめっちゃ悩まされたなぁ…
8224/06/24(月)20:00:19No.1203927317+
>そもそもコメントアウトのやつはほとんどのコンパイラでwarning出ると思うんだけどな…
なんか出てるけど英語だしWARNINGだからいいや!
8324/06/24(月)20:00:50No.1203927578+
ポインタ頑張って覚えたけどこれCPUとか弄るとき以外でどういう時に使うの…
8424/06/24(月)20:01:19No.1203927829+
いや楽しくねえよ
8524/06/24(月)20:01:42No.1203928051+
ゼロフィルはC言語かつOSに近いコードだと必須なのが腑に落ちない…
なんで構造体のメンバじゃない部分まで見てるんだよ…いや理屈はわかるけども…
8624/06/24(月)20:02:07No.1203928292+
>ポインタ頑張って覚えたけどこれCPUとか弄るとき以外でどういう時に使うの…
レジスタに値を書き込むとき
またはそのためのドライバを作るとき
8724/06/24(月)20:02:46No.1203928595+
>なんか出てるけど英語だしWARNINGだからいいや!
どの言語でもだめなやつ
8824/06/24(月)20:03:27No.1203928984+
関数ポインタは好き
8924/06/24(月)20:03:41No.1203929116+
Warningぐらいなら無視しちゃうわ…
makeしてる時に大量に出るし…
9024/06/24(月)20:03:55No.1203929242+
変にテクい使い方してるとCPU変更でエンディアン変わったときに死ぬ
死んだ


1719223113108.png