0からの、超初心者C言語相談室

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2021/05/19(水) 01:34:14.03ID:OYngDuIu
何にも知らない0からの出発、超初心者のためのC言語相談室


C++は、こちら。

0からの、超初心者C++相談室
https://mevius.5ch.net/test/read.cgi/tech/1542002113/
2021/10/25(月) 12:33:40.14ID:Rm/sO20O
>>79
aが配列でa[0]はその先頭要素。これらは同じじゃないよ。
この関係はchar a[3]でもstruct A a[3]でも同じだけど。
81デフォルトの名無しさん
垢版 |
2021/10/25(月) 12:37:22.98ID:vmRZrQEp
同じじゃない
2021/10/25(月) 13:34:18.40ID:dRHq7DJG
「*a と a[0] は同じ」あるいは「a と &a[0] は同じ」と言いたかったのかな?

a の型はあくまで配列型、つまりこの場合は char[3] という型を持つ。
ただし配列が式中に現れた場合には配列の先頭要素を指すポインタに型変換するという規則によって
a と書いたら型 char* の値として解釈される。
先頭要素を指していることになるので a==&a[0] が満たされる。

で、この a[0] という表記もクセモノで、定義上はポインタ演算の構文糖であるという扱いになっている。
a[0] とは *(a+0) のこと。

&a[0] は &*(a+0) と同じということになるんだが、
演算子 & のオペランドが * の適用結果であるときはどちらの適用も無かったことになるというルールがあるので
&*(a+0) から &* は消去されて a+0 が残り、 0 を足しても結果は変わらないからこれも消去すると a が残る。
故に &a[0] == a
2021/10/26(火) 03:12:03.00ID:7iLVX7OB
VisualStudioでWin32APIの入門したいんですが
どのプロジェクトテンプレートを使えば良いのでしょうか?
84デフォルトの名無しさん
垢版 |
2021/10/26(火) 15:39:42.99ID:4xSLwudN
Console Application
2021/11/10(水) 17:51:26.04ID:TeMjyUmY
if elseから学びたいのですが、余計な習っていない文がついたサイトばかり出てきます。
どこを見ればいいのでしょうか
2021/11/10(水) 19:04:16.39ID:TeMjyUmY
この際、本でもいいです。買います。
2021/11/10(水) 19:05:31.96ID:Ibdkkh+M
普通にリファレンスを読めば?
2021/11/10(水) 19:45:30.62ID:TeMjyUmY
出来が悪すぎて
2021/11/10(水) 19:50:39.71ID:Ibdkkh+M
おむつ? おつむ?
2021/11/11(木) 18:53:34.61ID:N0+2xiNh
今、リファレンスなんてまともなの売ってない
頼んでもいない文が山盛りついていて、一からやりたい奴は苦労している
とほほのhtmlみたいなのは売ってないんだよ
2021/11/11(木) 18:54:29.97ID:N0+2xiNh
つまりリファレンス足り得てない本ばっか
いま、プログラムを始めるのは独学では不可能と言ってもいい
2021/11/11(木) 18:57:09.08ID:N0+2xiNh
ちなみにオクにも出なくなったので手に入らない
2021/11/11(木) 18:58:20.42ID:N0+2xiNh
分かりづらい言い方しなければ、今はif elseから始める本は売ってない
2021/11/11(木) 19:02:41.41ID:CgY0hHY1
紙のリファレンスを読むという発想で生き残れるとは思えない。そこはもうデジタルファイルかウェブだよ。
2021/11/11(木) 19:07:22.97ID:CgY0hHY1
ほれ
https://cpprefjp.github.io/
https://en.cppreference.com/w/Cppreference:Archives
2021/11/11(木) 19:16:03.47ID:CgY0hHY1
君等の政府を見てみよ。教科書すらデジタル化できない。日本語入力の標準化すらままならない。紙ベース、電話ベースの考えなんかデジタル化で吹っ飛ぶ時代なんだ。
2021/11/11(木) 19:17:19.43ID:N0+2xiNh
>>95
これをどう初心者が読むんだ???読めないよ
基本的な構文はこうします、ああします、がなにもない
2021/11/11(木) 19:24:27.07ID:CgY0hHY1
>>97
残念だが、C言語はC++に飲み込まれたんだ。だから今C言語のみを参照するのは時代遅れ。目次からC言語の部分を参照:
https://cpprefjp.github.io/reference.html#clib-facilities
2021/11/11(木) 19:26:45.46ID:N0+2xiNh
簡素な実例を使って一個づつ説明しないんじゃ、初心者は誰も読めん
2021/11/11(木) 19:27:19.47ID:CgY0hHY1
たとえば、C言語のprintf関数を見たいのであればC++のstd::printfを参照しないといけない。
2021/11/11(木) 19:32:26.99ID:N0+2xiNh
elseをさもなくば、とか訳すのな、それは合ってる
しかし
n>10とかifに入ってたのなら初心者には、さもなくばではなく
10より小さければ、という意味になります。と書かんといかん。

なんだかねえ、わざとやってんのか
全てを伝えづともそれくらい書かないとダメだろと言いたい
2021/11/12(金) 00:56:45.47ID:r8IM8kKp
>>98
そんなことはない。
C 由来の関数は C++ の規格では C の規格を参照していて、詳細は C の規格を見ないと書いてない。
C と C++ は付かず離れず平行して存続すると D&E でも言及されている。

だいたい C のほとんどの関数はそのまま使うには C++ では行儀が悪いことが多いだろ。
互換性の都合で仕方なく入ってるだけで、 C++ に取り込みたくなんてないと思う。
2021/11/12(金) 01:19:39.87ID:r8IM8kKp
入門書というのは必ずしも簡単ではないということは知っておいて欲しい。
その分野でまず必要な知識を書いてあるのが入門書というもので、専門書の一種には違いないわけで。
ハードルを下げようと思えばいくらでも下げられるし、
実際に絵本に毛の生えたような説明の仕方をしているものもあるのだけれど、
きちんとした知識にするにはそれなりに難解な部分だって最終的には避けられない。

入門書なのに難しすぎる! と思うこともあるかもしれないけど、実際にそれは入門に必要なんだってば。
2021/11/12(金) 18:39:10.54ID:Ln6Hv7ms
必要ない
2021/11/12(金) 18:39:46.26ID:Ln6Hv7ms
そんな難解な教え方している専門学校ですらどこにもない
2021/11/12(金) 19:13:06.89ID:BtQklgip
アスキーとかナツメとか技術評論社あたりを当たると入門書が見つかると思うぜ。
2021/11/12(金) 19:24:06.67ID:Ln6Hv7ms
売ってない
実在しない
どれだ
2021/11/12(金) 19:29:27.55ID:Ln6Hv7ms
害虫がまた初心者向けに少しでもなるようなページを検索結果から消しているな
2021/11/12(金) 19:35:48.17ID:Ln6Hv7ms
そんなに早死にしたいのかねえ
2021/11/26(金) 12:10:38.20ID:ncT7Zn6W
>>38
秋月のPIC用c使ってるけどこれ規格準拠する気更々ないよな、cっぽいナニカ
まあアマチュア向けで気にすることも無いと思うけど

するとPCスマホ組み込みサポート網羅すべく頑張ってるc規格が可哀想に思えてくる…
2021/11/28(日) 00:02:18.62ID:A21vXR4U
スタック数段のマイナーマイコンcだと関数スコープから呼べない標準関数があったりしたな
何段消費するか明示して欲しい

まさかテストケースをグローバルで書いてるわけないよな
2021/11/28(日) 00:41:12.56ID:1ODb51AX
徹底的に呼び出し避けたマクロライブラリも挙動不審になりがちだしあきらめよう
2023/06/11(日) 23:42:34.62ID:NEZaQnIG
>>66
#defineでは書けなかった
でもif文で処理を分ければ最適化で通らない処理とif文の処理は削除される
int a=1;
if((char)a==0)
{
;
}
else
{
;
}
こんな感じ
2023/06/12(月) 04:26:28.49ID:wqSZy/1p
間違えた
int a=1;
if(*((char *)&a)==0)
{
;
}
else
{
;
}
こんな感じ
2023/09/21(木) 22:09:39.70ID:6guGpWia
ほんまにかいな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況