[過去ログ] C言語なら俺に聞け 162 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
53(1): (ワッチョイ 6dd7-HQPe) 2023/11/04(土)09:05 ID:uAZ656n/0(2/2) AAS
ずいぶん安い煽りに転じたな
表示される情報は最小限のほうがいいんだよ
仕事で使っていればそうなる
54(1): (ワッチョイ 653d-2MVi) 2023/11/04(土)10:09 ID:lvandghk0(1/2) AAS
自分はデバッガ使う段階なら定数は具体値が出てくれた方がいいです
クロスコンパイル環境の構築からとか、Cならではの現場を辿って来た人と、今どきのGUIのデバッガが前提の人では話は合わなそう
マウスかざせば済むじゃんと思ってるのでは
55: (ワッチョイ 624f-ZTan) 2023/11/04(土)11:08 ID:dBvv25rw0(1) AAS
>>43にアンカうったら>>49で手間がどうこうって返ってきたんだがそういうのを安全って言うのか??
個人的には>>52と同感でマクロにしてもenumにしてもシンボル・値両方確認出来るもんだと思ってたから
どんな環境を想定して言ってるのかちょっとよく話が掴めないな
56: (JP 0H09-q9sc) 2023/11/04(土)11:41 ID:A3cqUl0FH(1) AAS
gdbなどのデバッガー使っていれば変数名と型と値は全て表示される
必要であれば配列は全ての要素を展開して表示も出来るけどな
57: (ワッチョイ 9901-sdYh) 2023/11/04(土)11:48 ID:4yCaeT2N0(1) AAS
printfでOK
58: (アウアウウー Saa5-CWlg) 2023/11/04(土)12:21 ID:KPpuxUoxa(1) AAS
シンボルの方が意味が判って良いけどな
「マウスかざせば良い」はその通り
場合によっては watch 式
59(1): (ワッチョイ 0297-qmy0) 2023/11/04(土)13:42 ID:p2sqqR+o0(1) AAS
デバッグ段階で意味がいるのか?
60(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 823e-9NWm) 2023/11/04(土)13:50 ID:ocaBqo/v0(1/2) AAS
デバッガもその設計思想によるだろう。
ソースレベルデバッグなら言語の評価モデルに一致するのが自然だと思う。
そうなるとシンボルのほうが主役で、評価されれば値になるし一部は事前にわかる場合もある。
バイナリ寄りのデバッガなら
シンボル情報 (デバッグ情報) を扱えるものであってもまずそこにあるのは具体的な値であって、
値のほうをメインに見せる (シンボルは補助的な情報) のが筋に思える。
61: (ワッチョイ 827c-RmzB) 2023/11/04(土)14:07 ID:nDDUhOSB0(3/4) AAS
>>53
お前はアドレスさえわかれば関数名も変数名も不要なんだろうな。
俺はソースレベルデバッグを想定してたけどお前は違うの?
62(1): (ワッチョイ 827c-RmzB) 2023/11/04(土)14:20 ID:nDDUhOSB0(4/4) AAS
>>54
Cのソースレベルデバッガはgdbとそのラッパー(dddとかKDEのkdebug)しか使ったこと無いな。
お前は何使うの?gdb以外のデバッガにはちょっと興味あるかも。
あと、いつのまにかデバッグの話にすり変わってるけど、元は >>40 で *コード書くとき* の話だからな。
>>41 のせいだな。
63: (ワッチョイ 653d-2MVi) 2023/11/04(土)15:58 ID:lvandghk0(2/2) AAS
例の人ですか?
64: (ワッチョイ c191-HQPe) 2023/11/04(土)19:42 ID:Q+jfxr6/0(1) AAS
>>62
スレを私物化してないか?
65: (ワッチョイ 4279-ztC3) 2023/11/04(土)21:41 ID:W1fOq5zR0(1/2) AAS
Cは単純だからぽいんた辺りで躓かない限り特に疑問は生まれずスーっと大脳皮質に浸透していく
それに比べて自称モダン言語の気持ち悪さよ
Cが無かったらプログラミングなんてやってなかったろうな
66(1): (ワッチョイ 9901-jPjl) 2023/11/04(土)21:47 ID:vTgEadDD0(1/3) AAS
Cも関数ポインタとかたいがいきしょいぞ
67: (ワッチョイ 4279-ztC3) 2023/11/04(土)21:53 ID:W1fOq5zR0(2/2) AAS
Cの関数ポインタはそれ以上でもそれ以下でもない
セキュリティが緩い頃は関数ポインタを駆使すれば関数型言語で言う所の関数のファーストクラスも実現できた
この時やはりコードとデータは分かれているべきと判りみ
と同時にオブジェクト指向は間違った思想と気付く
68: はちみつ餃子◆8X2XSCHEME (ワッチョイ 823e-oDOv) 2023/11/04(土)21:57 ID:ocaBqo/v0(2/2) AAS
少なくとも宣言については無茶苦茶な文法だけどな。
69: (ワッチョイ 9901-jPjl) 2023/11/04(土)22:08 ID:vTgEadDD0(2/3) AAS
C++になると更にきしょいメンバ関数ポインタがあるが
70(1): (ワッチョイ 9901-jPjl) 2023/11/04(土)22:36 ID:vTgEadDD0(3/3) AAS
#include <iostream>
using namespace std;
struct Hoge {
int hage_;
int mage () const {return hage_;}
};
void func (const Hoge &obj, int (Hoge::*func) () const) {
cout << (obj.*func) () << '\n';
}
int main () {
省6
71: (ワッチョイ 2e63-sdYh) 2023/11/05(日)00:14 ID:u007GASC0(1/2) AAS
次の仕様拡張で関数配列が導入されます(嘘)
72: (アウアウウー Saa5-CWlg) 2023/11/05(日)10:34 ID:ol9bMVcca(1/2) AAS
>>59 とか
>>60 の後者の人とかは
ゲーマーか逆アセか改造チートでもしてんのかなと思う
73: (ワッチョイ 2e63-sdYh) 2023/11/05(日)10:45 ID:u007GASC0(2/2) AAS
定数はともかく変数の値の変化を監視するとなれば話は変わりますよ
74: (ワッチョイ c191-HQPe) 2023/11/05(日)10:52 ID:dHgdjFj00(1) AAS
>>66
単に機種依存なくしてユニバーサル化したアセンブラだからキモいも何もない
感覚的に受け付けないという方はもうすぐAIで自然言語でプログラムできるようになるからそれまで待てばいいじゃん
75(1): (アウアウウー Saa5-CWlg) 2023/11/05(日)11:02 ID:ol9bMVcca(2/2) AAS
>>70
こう描けばそこまでキモくない
#include <iostream>
using namespace std;
struct Hoge {
int hage_;
int mage () const {return hage_;}
};
void func (const Hoge &obj, int (Hoge::*p) () const) {
cout << (obj.*p)() << '\n';
省7
76: (アウアウウー Saa5-2ws7) 2023/11/06(月)13:51 ID:4BOQTpQoa(1) AAS
>>75
using使えよ
77: (ワッチョイ 42ad-dLR+) 2023/11/08(水)13:50 ID:ySVrNoqw0(1) AAS
C++の話はスレチ
78: (ワッチョイ 4279-ztC3) 2023/11/08(水)19:54 ID:5o5qiXKK0(1) AAS
その言葉が聞きたかった
79(1): あぼーん [あぼーん] AAS
あぼーん
80(1): (ワッチョイ ff02-qIOU) 2023/11/12(日)08:32 ID:d94Xl3Lo0(1) AAS
>>79
おー、これはワクワクするな
81: (ワッチョイ 1fdd-/atU) 2023/11/12(日)08:34 ID:GHx2Prj80(1) AAS
>>80
アホ!
1レスくらい間にはさまないとリアリティが出ないだろw
82: (ラクッペペ MM4f-6FeI) 2023/11/12(日)08:51 ID:It/c5vypM(1) AAS
ここまで自演
83: (ワッチョイ 7f7c-aEnJ) 2023/11/13(月)22:12 ID:6eyhepdG0(1) AAS
はじめてのCってタイトル狙ってるよね?
84: (ワンミングク MMdf-P3L0) 2023/11/14(火)12:53 ID:W6BGRK+OM(1) AAS
なんかドキドキする💗
85: (ワッチョイ 1f10-Zoup) 2023/11/14(火)15:40 ID:Pq1b8U9m0(1) AAS
>はじめてのC
数十年前からの定番ネタだよね・・・今の中年向けの・・・。
86: (ワッチョイ 1ff0-Gf4c) 2023/11/14(火)15:56 ID:B1tltd4R0(1) AAS
お前らはAの経験もないだろ
87: (ワッチョイ 9f46-ch54) 2023/11/14(火)17:17 ID:Qm0S65Zf0(1) AAS
小さく投げAするときも左利き。
88: (ワッチョイ 1f5f-Zoup) 2023/11/14(火)17:23 ID:0+a8UjLX0(1) AAS
消えたD言語もw
89: (アウアウウー Sae3-6ymb) 2023/11/14(火)17:24 ID:ehFVRHwha(1) AAS
APLは経験ないな
90(2): (ワッチョイ ff63-lv/m) 2023/11/14(火)17:26 ID:juKbspbB0(1) AAS
魔球は魔球はハリケーン♪
91: (ワッチョイ 7fad-beIL) 2023/11/15(水)02:42 ID:FfQCTRFi0(1) AAS
>>90
あなたの年齢は50歳以上ですね。
92: (ワッチョイ 9fbb-7z1d) 2023/11/16(木)19:17 ID:j+PNeGK90(1) AAS
Cタ「バルス!」
93: (ワッチョイ ff46-uMtu) 2023/11/16(木)20:52 ID:oCahIYzp0(1) AAS
C名「歌舞伎町の女王」
94(1): (ワッチョイ 465f-jMfl) 2023/11/18(土)16:08 ID:rSBossZH0(1) AAS
今はABCって言っても通用しないよ
95: (ワッチョイ 6e46-4xZ8) 2023/11/18(土)17:12 ID:gr23gvrO0(1) AAS
>>94
音階に倣って「イロハ」だったりするのかな。
プログラミング言語ハとか、ハ++とか、ハ長調とか。
96: (スップ Sd82-K/BJ) 2023/11/24(金)17:31 ID:yKOVmI8Pd(1) AAS
三等車か
97: (ワッチョイ a7bb-ayIT) 2023/11/25(土)04:21 ID:qagB2RQA0(1) AAS
Cの関数ポインタに慣れてしまってたんなに奇天烈に見えてたのに今じゃ可愛く見える
98: (ワッチョイ 5fad-1+JT) 2023/11/25(土)04:36 ID:D3zQdbUT0(1) AAS
∧__∧
(´∀`)
(⊃⌒*⌒⊂)
/_ノωヽ_)
99: (ワッチョイ 7f63-YwKO) 2023/11/25(土)10:00 ID:NdoBt+NA0(1) AAS
目標をせんたーに入れてスイッチ
100(1): (スププ Sd7f-RFe5) 2023/11/27(月)08:24 ID:554QjvZVd(1/2) AAS
左辺値と右辺値のことがよくわからない
char *cp = "abcdefgの"abcdefg"は値を変更できないのに、
char cp[] = "abcdefg"の"abcdefg"は値を変更できる
101(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 5f3e-d+hN) 2023/11/27(月)09:01 ID:HtoHgn5y0(1) AAS
>>100
それは左辺値/右辺値とは関係ない。
「リテラルを書き換えようとしたら未定義」というルールが関与してる。
前者の場合は文字列の場所を示すアドレスが cp に格納されているので
cp が指す先というのは文字列リテラルだが
後者の場合は確保された配列を初期化子の文字列で初期化するという理屈なので
配列と文字列リテラルとは別の実体を持ち、リテラルではない配列を書き換えることは問題にならない。
初期化子として文字列が出てくるときは初期化の文法としてちょっと特例があるのと
(文字列を含む) 配列は暗黙の型変換で勝手にポインタに変換される特例があって
そういう変則的なルールの積み重ねが分かり難い要因だと思う。
省4
102(1): (アウアウウー Sa0b-6V65) 2023/11/27(月)09:03 ID:7/k6/GSga(1) AAS
char *cpa = "abcdefg;
char cpb[] = cpa; // 出来ない
char cpc[] = "abcdefg";
char *cpd = cpc; // 出来る & abcdefgの中身も描き替え出来る
103: (ワッチョイ 7fab-LZ+J) 2023/11/27(月)11:14 ID:zMN468VW0(1/2) AAS
「大前提で文字列リテラルは書き換えたらダメ」があって
初期化と代入が同じ記号の = で行われてる
配列での代入操作は暗黙で先頭のポインタを渡す一方で
配列の初期化はあたかも複製をとったような形になる
ここらへんにややこしさがあってめぐりめぐって1行目にヒットする
104: (スププ Sd7f-RFe5) 2023/11/27(月)11:25 ID:554QjvZVd(2/2) AAS
>>101 ご親切にありがとうございます。標準的な本にもかいてあることを聞いてしまいました。
105: (エムゾネ FF7f-xen6) 2023/11/27(月)12:06 ID:65C4jQRRF(1) AAS
ポインタと配列(の先頭番地)は同じように使えるがまったく別のもの
>>102の例だとsizeof(cpc)は8で
sizeof(cpa)はポインターサイズ
106: (ワッチョイ 7fab-LZ+J) 2023/11/27(月)12:39 ID:zMN468VW0(2/2) AAS
"abcdefg"[2] = 'C'; これがNG
107: (ワッチョイ 5f79-/KuA) 2023/11/27(月)19:49 ID:/cbu4sL+0(1) AAS
>ポインタと配列(の先頭番地)は同じように使えるがまったく別のもの
まったく別と言い切ってしまうのはちょっと語弊があるように思う
言い換えれば配列はアドレスが変更できないポインタとみなせる
後は参照先のメモリ領域が書き換え可能かそうでないかの違いでしかない
108(1): (ワッチョイ 7f63-YwKO) 2023/11/27(月)19:53 ID:iryvQ0lx0(1) AAS
配列名は単に文字列が格納されている場所に付けられたラベル
109(1): (ワッチョイ 7f6a-l0Ve) 2023/11/27(月)22:43 ID:LIfK37a60(1) AAS
>>108
上で触れられているようにサイズ情報も持ってる
110: (スプッッ Sdff-z/Dz) 2023/11/28(火)08:18 ID:0HFLSmnDd(1) AAS
>>109
それは別に配列だからってわけじゃない。
111(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 5f3e-d+hN) 2023/11/28(火)09:29 ID:mRTkdYl90(1/2) AAS
配列の型は配列型だ。
char cpc[] = "abcdefg";
とあればこのときの cpc の型は char[8] をもつ。
式中に配列型の式が現れた場合には sizeof か & のオペランドであった場合を除いてその配列の先頭要素を指すポインタ (この場合は char*) に暗黙に型変換される。
変換が適用されればポインタだし、適用されない場面では配列。
配列自体は左辺値だが変更できる左辺値 (modifiable lvalue) ではないので代入演算子の左辺に現れることはできない。
配列を型変換を適用して出来るポインタは左辺値ではないのでやっぱり代入することは出来ない。
112(1): (ワッチョイ dfc6-AnfR) 2023/11/28(火)10:56 ID:vcMwjchf0(1) AAS
え?左辺値に出来るやん
113: (ワッチョイ a76b-onFz) 2023/11/28(火)15:19 ID:87HNLOa+0(1) AAS
型の話って、実は結構難しいというか深いよね…
型を認識するプログラム作ってみるとわかるんだけど
「~のポインタである」と
「~の配列である」を同じ情報量では扱えなくて
「~の配列(要素数n)である」としないとだめなの
ポインタである ことは1ビットで保持できるのに、配列である は要素数があるから必要なビット数がやたら多いのよ
114(1): (ワッチョイ 4701-GgRN) 2023/11/28(火)18:36 ID:0ouam6Fz0(1) AAS
((char*)cpc)++ で cpc[0] が 'b' を指すように移動できるの?
これがポインタが左辺値になってるって意味の理解でOK?
115: (ワッチョイ a763-YwKO) 2023/11/28(火)19:17 ID:7gZuadd+0(1/2) AAS
++は無理
116: (ワッチョイ 47e7-xen6) 2023/11/28(火)19:34 ID:7TmihfNz0(1) AAS
アセンブラで考えるとよくわかる
cpa:
.dw cpa_static
cpa_static:
.db 'abcdef',0
cpc:
db 'abcdef',0
こんな感じになるだろう
cpaをインクリメントするのが可能だがcpcをインクリメントするのは無理なのがわかるだろう
cpcはアセンブル後には値がなくなる固定値でcpaは領域が確保されてる変数だから
117(1): (ワッチョイ a763-YwKO) 2023/11/28(火)19:42 ID:7gZuadd+0(2/2) AAS
>((char*)cpc)++
こんな風な事をしたいなら、
*(char*)cpc+i
これでどうだろうか
cpcは固定値で、加算も減算も出来ないが、その位置からのオフセットならとれる
でも、ふつうの人は cpc[i] こうするだろう
118(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 5f3e-d+hN) 2023/11/28(火)20:11 ID:mRTkdYl90(2/2) AAS
>>114
代入可能であるためには左辺値であることは必要条件なのだけれど十分条件ではない。
配列が代入の対象になりえないにも関わらず
(modifiable という概念を導入してまで) 左辺値という扱いにしていることからもわかるように、
代入できるかどうかで左辺値かどうかは語れない。
左辺値でも代入できないことはある。
右辺値はどこかに代入しない限り捨てられる (その式を超える寿命を持つことはない) という性質があるので
逆にそうでないものは左辺値という扱いにしないと辻褄が合わないからこうなってるんだと思う。
119: (ワッチョイ 5fdf-2qxF) 2023/11/28(火)20:38 ID:h0hB0aZz0(1) AAS
>>112
>>118で「配列が代入の対象になりえないにも関わらず」なんて言い方してるくらいだから
多分左辺値とか右辺値がなんなのかよく分かってないんだろう
まあいつも規約をだらだら載せてるだけだけのコテだしね
120: (アウアウウー Sa0b-6V65) 2023/11/29(水)06:07 ID:n75oaT1ga(1) AAS
なんでcpcを++したいと思うんだろ
121: (ワッチョイ bf35-UyS0) 2023/11/29(水)07:30 ID:Dj4oipus0(1) AAS
左辺値かどうかの簡単な切り分けだと思っただけで
そういう欲求はない
122: (スフッ Sd7f-1fOb) 2023/11/29(水)11:41 ID:5J3ZheQvd(1/8) AAS
>>111 正確には、配列名のことをいっているんでしょ?
123: (スフッ Sd7f-1fOb) 2023/11/29(水)11:43 ID:5J3ZheQvd(2/8) AAS
でないと文章的につじつまが合わない
124(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 5f3e-d+hN) 2023/11/29(水)12:08 ID:sncgHuaJ0(1/4) AAS
何を言ってるのだかわからん。
代入演算子の左辺に配列が現れることは出来ないという説明
に納得いかない (できる状況があると思っている) ということ?
125: (スフッ Sd7f-1fOb) 2023/11/29(水)12:16 ID:5J3ZheQvd(3/8) AAS
>>124 そういうことです
126(1): (ワッチョイ 5f79-/KuA) 2023/11/29(水)12:18 ID:UMPQWy8o0(1/2) AAS
代入可能な左辺値一覧
○…代入可能な左辺値
×…代入可能な左辺値ではない
1 変数に代入 v=x ○
2 変数のアドレスに代入 &v=x ×
3 配列に代入 a[i]=x ○
4 配列の名前に代入(2に相当) a=x ×
5 ポインタ変数に代入 p=x ○
5 ポインタ変数のアドレスに代入 &p=x ×
7 ポインタ変数の参照先に代入 *p=x ○ ただし参照先が書き込み可能でなければランタイムエラー
省1
127: (スフッ Sd7f-1fOb) 2023/11/29(水)12:25 ID:5J3ZheQvd(4/8) AAS
>>126 まだまだ浅学な者で、3と4の違いが分かれば十分です
128: (スフッ Sd7f-1fOb) 2023/11/29(水)12:26 ID:5J3ZheQvd(5/8) AAS
右辺値と左辺値に関しては
129: (スフッ Sd7f-1fOb) 2023/11/29(水)12:34 ID:5J3ZheQvd(6/8) AAS
char ss[5];
char *p;
p = ss; 〇
p = &ss[0]; 〇
ss = p; ×
p = ss + 2; 〇
p = &ss[2]; 〇
130: はちみつ餃子◆8X2XSCHEME (ワッチョイ 5f3e-d+hN) 2023/11/29(水)12:41 ID:sncgHuaJ0(2/4) AAS
配列 a があるとき
a[i]=x
という式の左辺は配列に添字演算子を適用したもの (配列の要素) であって
これのことを「配列に代入」と呼ぶと語弊がある。
131: (スフッ Sd7f-1fOb) 2023/11/29(水)12:54 ID:5J3ZheQvd(7/8) AAS
しかし、食べたらまずそうなコテハンですね('_')
132: はちみつ餃子◆8X2XSCHEME (ワッチョイ 5f3e-d+hN) 2023/11/29(水)13:01 ID:sncgHuaJ0(3/4) AAS
最初はSCHEME餃子と名乗ってたけどSCHEMEスレが過疎ってて暇だから
CスレC++スレにも書く機会が多くて途中で変えた。
私としてはあり得なさそうな組み合わせの語を選んだつもりだったのだけど
はちみつを使った餃子のレシピはあるみたいだよ。
133: (スフッ Sd7f-RFe5) 2023/11/29(水)13:56 ID:5J3ZheQvd(8/8) AAS
配列には確かに構造体のようにごっそり代入できませんね
134: (ワントンキン MM3f-LVuv) 2023/11/29(水)14:07 ID:5SldHabaM(1) AAS
構造体に入れてしまえば解決
135: (ワッチョイ 7fab-LZ+J) 2023/11/29(水)15:10 ID:K/pKiYoT0(1) AAS
126 の表現を借りるなら
3 は配列の要素に代入
4 が配列に代入
こういう意識だわ
136: (ワッチョイ 5f79-/KuA) 2023/11/29(水)15:15 ID:UMPQWy8o0(2/2) AAS
結局てめーの日本語が気に食わないって話かよ
長文は読む気が失せるわー
137: はちみつ餃子◆8X2XSCHEME (ワッチョイ 5f3e-d+hN) 2023/11/29(水)16:16 ID:sncgHuaJ0(4/4) AAS
「配列は」という話をしているときに配列でなくする操作 (要素に対するアクセス) をすれば出来るみたいな話と混同されると困る。
138: (ワッチョイ 47e7-xen6) 2023/11/29(水)20:22 ID:odjcqh9C0(1) AAS
初心者のころ
char text[] = "Answer is _";
text[10] = 'A' + ans;
とか書こうとしてうろおぼえで
char *text = "Answer is _";
text[10] = 'A' + ans;
としたらエラーかワーニングになって
なんでできないんだよ!とずっと悩んでいたことがあるが
そういう話じゃないの?
139(1): (アウアウウー Sa0b-6V65) 2023/11/30(木)06:41 ID:yOmuxKyka(1) AAS
char a[] = "A";
char *p = a;
は別物(同じだと説明している入門書があるならクソ本)
&a[0] を a と省略出来るだけ
もちろん sizeof p と sizeof a[0] と sizeof a は違う
140(2): (ワッチョイ bfe7-2qxF) 2023/11/30(木)13:09 ID:EuLMofdV0(1) AAS
>>139
もう少しで完全に理解できそうなので
ガンダムで例えてくれ
141: はちみつ餃子◆8X2XSCHEME (ワッチョイ 5f3e-d+hN) 2023/11/30(木)14:54 ID:3QI4e6Tt0(1/5) AAS
> &a[0] を a と省略出来るだけ
意味が同じなわけなので記法の上では省略と言えるんだけど
a が &a[0] のことを意味しているというわけではなく、
言語仕様上の理屈としては a のほうにプリミティブな定義があって &a[0] のほうが構文糖という扱い。
? E1[E2] は (*((E1)+(E2))) と等価である
? & のオペランドが単項*演算子の結果の場合,*演算子も&演算子も評価せずに両演算子とも取り除いた場合と同じ
(添字演算子の適用結果をオペランドとする場合も同様)
? 配列 (結果が配列型となるような式) は sizeof か & のオペランドであるときを除いて先頭要素を指すポインタに変換される
つまり &a[0] の場合を順番に当てはめるとまず &*(a+0) と同等と見做され、
&* は無かったことにされるので a+0 となり、 0 を足しても内容は変化しないから無視できて a と同じ。
省1
142: はちみつ餃子◆8X2XSCHEME (ワッチョイ 5f3e-d+hN) 2023/11/30(木)14:59 ID:3QI4e6Tt0(2/5) AAS
(順序から言うと配列がポインタに変換されるほうが先だな……。 すまぬ)
143(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 5f3e-d+hN) 2023/11/30(木)15:08 ID:3QI4e6Tt0(3/5) AAS
配列 a は a と書くだけで先頭要素を指すポインタなので
&a[0] と書くってのは 0 を足すという要らんことをしているという扱いってこと。
144: (ワッチョイ 5f79-/KuA) 2023/11/30(木)20:20 ID:4nwqW1NG0(1) AAS
>>140
pがザビ家でaがジオン公国そのものと言ったら判りやすいだろうか
ジオンはザビ家にNTRれたけど元のジオン・ダイクンが掲げた思想(長さとか)はNTRが完了した時点で失われた
その後出てきたアクシズ(ネオ・ジオン)はもっと酷くてジオンと言える部分はNTRしたザビ家の跡取りとその傀儡だけでジオンとは一体何だったのか語れる人物は一人もいない
145(3): (ワッチョイ 47e7-xen6) 2023/11/30(木)20:26 ID:SvZ2/mZg0(1) AAS
>>143
そっちのほうが余計なギミックじゃない?
a[]のアドレスが欲しければ&aと書くだけでいいのに
aが自動的にa[]の先頭番地になってしまうからややこしい
ちなみにBASICだと配列と同名の単純変数が作れてしまいこれも今思うと無茶苦茶だった
146: (アウアウウー Sa0b-6V65) 2023/11/30(木)20:46 ID:h/B+JtY5a(1/3) AAS
>>117
意味無いわ
147(1): (アウアウウー Sa0b-6V65) 2023/11/30(木)20:47 ID:h/B+JtY5a(2/3) AAS
完全に理解した!!!
↓
外部リンク:ideone.com
#include <stdio.h>
#define N 3
int main(int argc, char **argv)
{
char *hoge[] = {"abcd", "efg"};
char **hige = hoge;
char hage[][N] = {"ab", "cd", "ef", "gh"};
省11
148: (アウアウウー Sa0b-6V65) 2023/11/30(木)20:51 ID:h/B+JtY5a(3/3) AAS
アンカ忘れた
>>140
149: はちみつ餃子◆8X2XSCHEME (ワッチョイ 5f3e-zy57) 2023/11/30(木)21:26 ID:3QI4e6Tt0(4/5) AAS
>>145
あくまでも言語仕様の理屈で言えばこうだという説明なのでその言語仕様が良いかどうかの意見は含んでないよ。
色々とアレな部分も多いってのは文句つけても仕方がないいまさらな話だし。
150: (ワントンキン MM3f-XlNP) 2023/11/30(木)22:06 ID:wy49Mw9yM(1) AAS
いやいや何を言っとんの?
利便性のためにそういう仕様にしてるんだよ
C書いてりゃさすがに分かんだろうよw
151: はちみつ餃子◆8X2XSCHEME (ワッチョイ 5f3e-zy57) 2023/11/30(木)22:36 ID:3QI4e6Tt0(5/5) AAS
感覚的にはそんなに不自然には感じないんだけど
仕様の規則が変則的なのも確かなので
つまりは人間の感覚は不合理なものってことだ。
152: (ワッチョイ bf5f-2qxF) 2023/11/30(木)22:41 ID:0Cr+jEwb0(1) AAS
>>147
%zd は知らなかったわ。 勉強になった
上下前次1-新書関写板覧索設栞歴
あと 850 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.038s