!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C17
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C23 最新ドラフト
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.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/
※前スレ
C言語なら俺に聞け 161
https://mevius.5ch.net/test/read.cgi/tech/1682053520/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
C言語なら俺に聞け 162
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 2389-FUJr)
2023/10/30(月) 17:13:00.82ID:hHEGE8Ol0103デフォルトの名無しさん (ワッチョイ 7fab-LZ+J)
2023/11/27(月) 11:14:55.99ID:zMN468VW0 「大前提で文字列リテラルは書き換えたらダメ」があって
初期化と代入が同じ記号の = で行われてる
配列での代入操作は暗黙で先頭のポインタを渡す一方で
配列の初期化はあたかも複製をとったような形になる
ここらへんにややこしさがあってめぐりめぐって1行目にヒットする
初期化と代入が同じ記号の = で行われてる
配列での代入操作は暗黙で先頭のポインタを渡す一方で
配列の初期化はあたかも複製をとったような形になる
ここらへんにややこしさがあってめぐりめぐって1行目にヒットする
104デフォルトの名無しさん (スププ Sd7f-RFe5)
2023/11/27(月) 11:25:24.57ID:554QjvZVd >>101 ご親切にありがとうございます。標準的な本にもかいてあることを聞いてしまいました。
105デフォルトの名無しさん (エムゾネ FF7f-xen6)
2023/11/27(月) 12:06:42.49ID:65C4jQRRF106デフォルトの名無しさん (ワッチョイ 7fab-LZ+J)
2023/11/27(月) 12:39:47.73ID:zMN468VW0 "abcdefg"[2] = 'C'; これがNG
107デフォルトの名無しさん (ワッチョイ 5f79-/KuA)
2023/11/27(月) 19:49:45.68ID:/cbu4sL+0 >ポインタと配列(の先頭番地)は同じように使えるがまったく別のもの
まったく別と言い切ってしまうのはちょっと語弊があるように思う
言い換えれば配列はアドレスが変更できないポインタとみなせる
後は参照先のメモリ領域が書き換え可能かそうでないかの違いでしかない
まったく別と言い切ってしまうのはちょっと語弊があるように思う
言い換えれば配列はアドレスが変更できないポインタとみなせる
後は参照先のメモリ領域が書き換え可能かそうでないかの違いでしかない
108デフォルトの名無しさん (ワッチョイ 7f63-YwKO)
2023/11/27(月) 19:53:12.61ID:iryvQ0lx0 配列名は単に文字列が格納されている場所に付けられたラベル
109デフォルトの名無しさん (ワッチョイ 7f6a-l0Ve)
2023/11/27(月) 22:43:46.81ID:LIfK37a60 >>108
上で触れられているようにサイズ情報も持ってる
上で触れられているようにサイズ情報も持ってる
110デフォルトの名無しさん (スプッッ Sdff-z/Dz)
2023/11/28(火) 08:18:33.76ID:0HFLSmnDd >>109
それは別に配列だからってわけじゃない。
それは別に配列だからってわけじゃない。
111はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/11/28(火) 09:29:06.38ID:mRTkdYl90 配列の型は配列型だ。
char cpc[] = "abcdefg";
とあればこのときの cpc の型は char[8] をもつ。
式中に配列型の式が現れた場合には sizeof か & のオペランドであった場合を除いてその配列の先頭要素を指すポインタ (この場合は char*) に暗黙に型変換される。
変換が適用されればポインタだし、適用されない場面では配列。
配列自体は左辺値だが変更できる左辺値 (modifiable lvalue) ではないので代入演算子の左辺に現れることはできない。
配列を型変換を適用して出来るポインタは左辺値ではないのでやっぱり代入することは出来ない。
char cpc[] = "abcdefg";
とあればこのときの cpc の型は char[8] をもつ。
式中に配列型の式が現れた場合には sizeof か & のオペランドであった場合を除いてその配列の先頭要素を指すポインタ (この場合は char*) に暗黙に型変換される。
変換が適用されればポインタだし、適用されない場面では配列。
配列自体は左辺値だが変更できる左辺値 (modifiable lvalue) ではないので代入演算子の左辺に現れることはできない。
配列を型変換を適用して出来るポインタは左辺値ではないのでやっぱり代入することは出来ない。
112デフォルトの名無しさん (ワッチョイ dfc6-AnfR)
2023/11/28(火) 10:56:51.80ID:vcMwjchf0 え?左辺値に出来るやん
113デフォルトの名無しさん (ワッチョイ a76b-onFz)
2023/11/28(火) 15:19:32.77ID:87HNLOa+0 型の話って、実は結構難しいというか深いよね…
型を認識するプログラム作ってみるとわかるんだけど
「~のポインタである」と
「~の配列である」を同じ情報量では扱えなくて
「~の配列(要素数n)である」としないとだめなの
ポインタである ことは1ビットで保持できるのに、配列である は要素数があるから必要なビット数がやたら多いのよ
型を認識するプログラム作ってみるとわかるんだけど
「~のポインタである」と
「~の配列である」を同じ情報量では扱えなくて
「~の配列(要素数n)である」としないとだめなの
ポインタである ことは1ビットで保持できるのに、配列である は要素数があるから必要なビット数がやたら多いのよ
114デフォルトの名無しさん (ワッチョイ 4701-GgRN)
2023/11/28(火) 18:36:50.58ID:0ouam6Fz0 ((char*)cpc)++ で cpc[0] が 'b' を指すように移動できるの?
これがポインタが左辺値になってるって意味の理解でOK?
これがポインタが左辺値になってるって意味の理解でOK?
115デフォルトの名無しさん (ワッチョイ a763-YwKO)
2023/11/28(火) 19:17:29.83ID:7gZuadd+0 ++は無理
116デフォルトの名無しさん (ワッチョイ 47e7-xen6)
2023/11/28(火) 19:34:06.06ID:7TmihfNz0 アセンブラで考えるとよくわかる
cpa:
.dw cpa_static
cpa_static:
.db 'abcdef',0
cpc:
db 'abcdef',0
こんな感じになるだろう
cpaをインクリメントするのが可能だがcpcをインクリメントするのは無理なのがわかるだろう
cpcはアセンブル後には値がなくなる固定値でcpaは領域が確保されてる変数だから
cpa:
.dw cpa_static
cpa_static:
.db 'abcdef',0
cpc:
db 'abcdef',0
こんな感じになるだろう
cpaをインクリメントするのが可能だがcpcをインクリメントするのは無理なのがわかるだろう
cpcはアセンブル後には値がなくなる固定値でcpaは領域が確保されてる変数だから
117デフォルトの名無しさん (ワッチョイ a763-YwKO)
2023/11/28(火) 19:42:59.12ID:7gZuadd+0 >((char*)cpc)++
こんな風な事をしたいなら、
*(char*)cpc+i
これでどうだろうか
cpcは固定値で、加算も減算も出来ないが、その位置からのオフセットならとれる
でも、ふつうの人は cpc[i] こうするだろう
こんな風な事をしたいなら、
*(char*)cpc+i
これでどうだろうか
cpcは固定値で、加算も減算も出来ないが、その位置からのオフセットならとれる
でも、ふつうの人は cpc[i] こうするだろう
118はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/11/28(火) 20:11:54.43ID:mRTkdYl90 >>114
代入可能であるためには左辺値であることは必要条件なのだけれど十分条件ではない。
配列が代入の対象になりえないにも関わらず
(modifiable という概念を導入してまで) 左辺値という扱いにしていることからもわかるように、
代入できるかどうかで左辺値かどうかは語れない。
左辺値でも代入できないことはある。
右辺値はどこかに代入しない限り捨てられる (その式を超える寿命を持つことはない) という性質があるので
逆にそうでないものは左辺値という扱いにしないと辻褄が合わないからこうなってるんだと思う。
代入可能であるためには左辺値であることは必要条件なのだけれど十分条件ではない。
配列が代入の対象になりえないにも関わらず
(modifiable という概念を導入してまで) 左辺値という扱いにしていることからもわかるように、
代入できるかどうかで左辺値かどうかは語れない。
左辺値でも代入できないことはある。
右辺値はどこかに代入しない限り捨てられる (その式を超える寿命を持つことはない) という性質があるので
逆にそうでないものは左辺値という扱いにしないと辻褄が合わないからこうなってるんだと思う。
119デフォルトの名無しさん (ワッチョイ 5fdf-2qxF)
2023/11/28(火) 20:38:05.06ID:h0hB0aZz0120デフォルトの名無しさん (アウアウウー Sa0b-6V65)
2023/11/29(水) 06:07:26.12ID:n75oaT1ga なんでcpcを++したいと思うんだろ
121デフォルトの名無しさん (ワッチョイ bf35-UyS0)
2023/11/29(水) 07:30:00.42ID:Dj4oipus0 左辺値かどうかの簡単な切り分けだと思っただけで
そういう欲求はない
そういう欲求はない
122デフォルトの名無しさん (スフッ Sd7f-1fOb)
2023/11/29(水) 11:41:18.63ID:5J3ZheQvd >>111 正確には、配列名のことをいっているんでしょ?
123デフォルトの名無しさん (スフッ Sd7f-1fOb)
2023/11/29(水) 11:43:26.36ID:5J3ZheQvd でないと文章的につじつまが合わない
124はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/11/29(水) 12:08:25.16ID:sncgHuaJ0 何を言ってるのだかわからん。
代入演算子の左辺に配列が現れることは出来ないという説明
に納得いかない (できる状況があると思っている) ということ?
代入演算子の左辺に配列が現れることは出来ないという説明
に納得いかない (できる状況があると思っている) ということ?
125デフォルトの名無しさん (スフッ Sd7f-1fOb)
2023/11/29(水) 12:16:49.24ID:5J3ZheQvd >>124 そういうことです
126デフォルトの名無しさん (ワッチョイ 5f79-/KuA)
2023/11/29(水) 12:18:51.59ID:UMPQWy8o0 代入可能な左辺値一覧
○…代入可能な左辺値
×…代入可能な左辺値ではない
1 変数に代入 v=x ○
2 変数のアドレスに代入 &v=x ×
3 配列に代入 a[i]=x ○
4 配列の名前に代入(2に相当) a=x ×
5 ポインタ変数に代入 p=x ○
5 ポインタ変数のアドレスに代入 &p=x ×
7 ポインタ変数の参照先に代入 *p=x ○ ただし参照先が書き込み可能でなければランタイムエラー
理解できたかね?
○…代入可能な左辺値
×…代入可能な左辺値ではない
1 変数に代入 v=x ○
2 変数のアドレスに代入 &v=x ×
3 配列に代入 a[i]=x ○
4 配列の名前に代入(2に相当) a=x ×
5 ポインタ変数に代入 p=x ○
5 ポインタ変数のアドレスに代入 &p=x ×
7 ポインタ変数の参照先に代入 *p=x ○ ただし参照先が書き込み可能でなければランタイムエラー
理解できたかね?
127デフォルトの名無しさん (スフッ Sd7f-1fOb)
2023/11/29(水) 12:25:45.50ID:5J3ZheQvd >>126 まだまだ浅学な者で、3と4の違いが分かれば十分です
128デフォルトの名無しさん (スフッ Sd7f-1fOb)
2023/11/29(水) 12:26:51.70ID:5J3ZheQvd 右辺値と左辺値に関しては
129デフォルトの名無しさん (スフッ Sd7f-1fOb)
2023/11/29(水) 12:34:21.47ID:5J3ZheQvd char ss[5];
char *p;
p = ss; 〇
p = &ss[0]; 〇
ss = p; ×
p = ss + 2; 〇
p = &ss[2]; 〇
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:04.72ID:sncgHuaJ0 配列 a があるとき
a[i]=x
という式の左辺は配列に添字演算子を適用したもの (配列の要素) であって
これのことを「配列に代入」と呼ぶと語弊がある。
a[i]=x
という式の左辺は配列に添字演算子を適用したもの (配列の要素) であって
これのことを「配列に代入」と呼ぶと語弊がある。
131デフォルトの名無しさん (スフッ Sd7f-1fOb)
2023/11/29(水) 12:54:49.45ID:5J3ZheQvd しかし、食べたらまずそうなコテハンですね('_')
132はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/11/29(水) 13:01:54.89ID:sncgHuaJ0 最初はSCHEME餃子と名乗ってたけどSCHEMEスレが過疎ってて暇だから
CスレC++スレにも書く機会が多くて途中で変えた。
私としてはあり得なさそうな組み合わせの語を選んだつもりだったのだけど
はちみつを使った餃子のレシピはあるみたいだよ。
CスレC++スレにも書く機会が多くて途中で変えた。
私としてはあり得なさそうな組み合わせの語を選んだつもりだったのだけど
はちみつを使った餃子のレシピはあるみたいだよ。
133デフォルトの名無しさん (スフッ Sd7f-RFe5)
2023/11/29(水) 13:56:20.69ID:5J3ZheQvd 配列には確かに構造体のようにごっそり代入できませんね
134デフォルトの名無しさん (ワントンキン MM3f-LVuv)
2023/11/29(水) 14:07:08.49ID:5SldHabaM 構造体に入れてしまえば解決
135デフォルトの名無しさん (ワッチョイ 7fab-LZ+J)
2023/11/29(水) 15:10:46.39ID:K/pKiYoT0 126 の表現を借りるなら
3 は配列の要素に代入
4 が配列に代入
こういう意識だわ
3 は配列の要素に代入
4 が配列に代入
こういう意識だわ
136デフォルトの名無しさん (ワッチョイ 5f79-/KuA)
2023/11/29(水) 15:15:32.07ID:UMPQWy8o0 結局てめーの日本語が気に食わないって話かよ
長文は読む気が失せるわー
長文は読む気が失せるわー
137はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/11/29(水) 16:16:32.90ID:sncgHuaJ0 「配列は」という話をしているときに配列でなくする操作 (要素に対するアクセス) をすれば出来るみたいな話と混同されると困る。
138デフォルトの名無しさん (ワッチョイ 47e7-xen6)
2023/11/29(水) 20:22:44.16ID:odjcqh9C0 初心者のころ
char text[] = "Answer is _";
text[10] = 'A' + ans;
とか書こうとしてうろおぼえで
char *text = "Answer is _";
text[10] = 'A' + ans;
としたらエラーかワーニングになって
なんでできないんだよ!とずっと悩んでいたことがあるが
そういう話じゃないの?
char text[] = "Answer is _";
text[10] = 'A' + ans;
とか書こうとしてうろおぼえで
char *text = "Answer is _";
text[10] = 'A' + ans;
としたらエラーかワーニングになって
なんでできないんだよ!とずっと悩んでいたことがあるが
そういう話じゃないの?
139デフォルトの名無しさん (アウアウウー Sa0b-6V65)
2023/11/30(木) 06:41:39.94ID:yOmuxKyka char a[] = "A";
char *p = a;
は別物(同じだと説明している入門書があるならクソ本)
&a[0] を a と省略出来るだけ
もちろん sizeof p と sizeof a[0] と sizeof a は違う
char *p = a;
は別物(同じだと説明している入門書があるならクソ本)
&a[0] を a と省略出来るだけ
もちろん sizeof p と sizeof a[0] と sizeof a は違う
140デフォルトの名無しさん (ワッチョイ bfe7-2qxF)
2023/11/30(木) 13:09:50.69ID:EuLMofdV0141はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/11/30(木) 14:54:30.13ID:3QI4e6Tt0 > &a[0] を a と省略出来るだけ
意味が同じなわけなので記法の上では省略と言えるんだけど
a が &a[0] のことを意味しているというわけではなく、
言語仕様上の理屈としては a のほうにプリミティブな定義があって &a[0] のほうが構文糖という扱い。
@ E1[E2] は (*((E1)+(E2))) と等価である
A & のオペランドが単項*演算子の結果の場合,*演算子も&演算子も評価せずに両演算子とも取り除いた場合と同じ
(添字演算子の適用結果をオペランドとする場合も同様)
B 配列 (結果が配列型となるような式) は sizeof か & のオペランドであるときを除いて先頭要素を指すポインタに変換される
つまり &a[0] の場合を順番に当てはめるとまず &*(a+0) と同等と見做され、
&* は無かったことにされるので a+0 となり、 0 を足しても内容は変化しないから無視できて a と同じ。
そして a は配列の先頭要素を指すポインタに変換される。
意味が同じなわけなので記法の上では省略と言えるんだけど
a が &a[0] のことを意味しているというわけではなく、
言語仕様上の理屈としては a のほうにプリミティブな定義があって &a[0] のほうが構文糖という扱い。
@ E1[E2] は (*((E1)+(E2))) と等価である
A & のオペランドが単項*演算子の結果の場合,*演算子も&演算子も評価せずに両演算子とも取り除いた場合と同じ
(添字演算子の適用結果をオペランドとする場合も同様)
B 配列 (結果が配列型となるような式) は sizeof か & のオペランドであるときを除いて先頭要素を指すポインタに変換される
つまり &a[0] の場合を順番に当てはめるとまず &*(a+0) と同等と見做され、
&* は無かったことにされるので a+0 となり、 0 を足しても内容は変化しないから無視できて a と同じ。
そして a は配列の先頭要素を指すポインタに変換される。
142はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/11/30(木) 14:59:53.10ID:3QI4e6Tt0 (順序から言うと配列がポインタに変換されるほうが先だな……。 すまぬ)
143はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/11/30(木) 15:08:15.57ID:3QI4e6Tt0 配列 a は a と書くだけで先頭要素を指すポインタなので
&a[0] と書くってのは 0 を足すという要らんことをしているという扱いってこと。
&a[0] と書くってのは 0 を足すという要らんことをしているという扱いってこと。
144デフォルトの名無しさん (ワッチョイ 5f79-/KuA)
2023/11/30(木) 20:20:41.06ID:4nwqW1NG0 >>140
pがザビ家でaがジオン公国そのものと言ったら判りやすいだろうか
ジオンはザビ家にNTRれたけど元のジオン・ダイクンが掲げた思想(長さとか)はNTRが完了した時点で失われた
その後出てきたアクシズ(ネオ・ジオン)はもっと酷くてジオンと言える部分はNTRしたザビ家の跡取りとその傀儡だけでジオンとは一体何だったのか語れる人物は一人もいない
pがザビ家でaがジオン公国そのものと言ったら判りやすいだろうか
ジオンはザビ家にNTRれたけど元のジオン・ダイクンが掲げた思想(長さとか)はNTRが完了した時点で失われた
その後出てきたアクシズ(ネオ・ジオン)はもっと酷くてジオンと言える部分はNTRしたザビ家の跡取りとその傀儡だけでジオンとは一体何だったのか語れる人物は一人もいない
145デフォルトの名無しさん (ワッチョイ 47e7-xen6)
2023/11/30(木) 20:26:04.69ID:SvZ2/mZg0 >>143
そっちのほうが余計なギミックじゃない?
a[]のアドレスが欲しければ&aと書くだけでいいのに
aが自動的にa[]の先頭番地になってしまうからややこしい
ちなみにBASICだと配列と同名の単純変数が作れてしまいこれも今思うと無茶苦茶だった
そっちのほうが余計なギミックじゃない?
a[]のアドレスが欲しければ&aと書くだけでいいのに
aが自動的にa[]の先頭番地になってしまうからややこしい
ちなみにBASICだと配列と同名の単純変数が作れてしまいこれも今思うと無茶苦茶だった
146デフォルトの名無しさん (アウアウウー Sa0b-6V65)
2023/11/30(木) 20:46:09.47ID:h/B+JtY5a >>117
意味無いわ
意味無いわ
147デフォルトの名無しさん (アウアウウー Sa0b-6V65)
2023/11/30(木) 20:47:46.07ID:h/B+JtY5a 完全に理解した!!!
↓
https://ideone.com/g2912A
#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"};
char (*fuga)[N] = hage;
char (*moga)[N] = {"ab", "cd", "ef", "gh"};
printf("%zd %s %s\n", sizeof(hoge), hoge[0], hoge[1]);
printf("%zd %s %s\n", sizeof(hige), hige[0], hige[1]);
printf("%zd %s %s %s %s\n", sizeof(hage), hage[0], hage[1], hage[2], hage[3]);
printf("%zd %s %s %s %s\n", sizeof(fuga), fuga[0], fuga[1], fuga[2], fuga[3]);
printf("%zd %s %s %s %s\n", sizeof(moga), moga[0], moga[1], moga[2], moga[3]);
return 0;
}
↓
説明してみ
↓
https://ideone.com/g2912A
#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"};
char (*fuga)[N] = hage;
char (*moga)[N] = {"ab", "cd", "ef", "gh"};
printf("%zd %s %s\n", sizeof(hoge), hoge[0], hoge[1]);
printf("%zd %s %s\n", sizeof(hige), hige[0], hige[1]);
printf("%zd %s %s %s %s\n", sizeof(hage), hage[0], hage[1], hage[2], hage[3]);
printf("%zd %s %s %s %s\n", sizeof(fuga), fuga[0], fuga[1], fuga[2], fuga[3]);
printf("%zd %s %s %s %s\n", sizeof(moga), moga[0], moga[1], moga[2], moga[3]);
return 0;
}
↓
説明してみ
148デフォルトの名無しさん (アウアウウー Sa0b-6V65)
2023/11/30(木) 20:51:51.20ID:h/B+JtY5a アンカ忘れた
>>140
>>140
149はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-zy57)
2023/11/30(木) 21:26:27.48ID:3QI4e6Tt0150デフォルトの名無しさん (ワントンキン MM3f-XlNP)
2023/11/30(木) 22:06:24.41ID:wy49Mw9yM いやいや何を言っとんの?
利便性のためにそういう仕様にしてるんだよ
C書いてりゃさすがに分かんだろうよw
利便性のためにそういう仕様にしてるんだよ
C書いてりゃさすがに分かんだろうよw
151はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-zy57)
2023/11/30(木) 22:36:56.23ID:3QI4e6Tt0 感覚的にはそんなに不自然には感じないんだけど
仕様の規則が変則的なのも確かなので
つまりは人間の感覚は不合理なものってことだ。
仕様の規則が変則的なのも確かなので
つまりは人間の感覚は不合理なものってことだ。
152デフォルトの名無しさん (ワッチョイ bf5f-2qxF)
2023/11/30(木) 22:41:39.63ID:0Cr+jEwb0 >>147
%zd は知らなかったわ。 勉強になった
%zd は知らなかったわ。 勉強になった
153はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/12/01(金) 00:42:09.23ID:U5xjJXbM0 sizeof の結果の型は size_t で、
size_t は符号なし整数というだけしか規定されていない処理系定義なんだけど
unsigned int や unsigned long int の別名として定義されていることが多いせいで
それをあてにした形で説明している資料は割とある。
size_t は符号なし整数というだけしか規定されていない処理系定義なんだけど
unsigned int や unsigned long int の別名として定義されていることが多いせいで
それをあてにした形で説明している資料は割とある。
154デフォルトの名無しさん (ワッチョイ 5fad-F3mB)
2023/12/01(金) 02:30:56.67ID:oKQshtme0 >>145
> a[]のアドレスが欲しければ&aと書くだけでいいのに
俺はそっちのほうがややこしいと思うけどな
むしろ*(a+10) を [] で表現するなら *a[10] みたいな書き方になるほうが、理解する上ではややこしくなかったかなとは思うけど(使う上では不便)
[] って箱(マス)に見えるし、まあ直接箱の中身を示すものなのだなって覚えたけど
> a[]のアドレスが欲しければ&aと書くだけでいいのに
俺はそっちのほうがややこしいと思うけどな
むしろ*(a+10) を [] で表現するなら *a[10] みたいな書き方になるほうが、理解する上ではややこしくなかったかなとは思うけど(使う上では不便)
[] って箱(マス)に見えるし、まあ直接箱の中身を示すものなのだなって覚えたけど
155デフォルトの名無しさん (ワッチョイ a76b-onFz)
2023/12/01(金) 05:52:03.14ID:sCbOzpGc0 誰が誰なのかよく分からんけど、キッズが来て荒れた、という話ですか
インデックスアドレッシングを [ ] 記号に当てただけと思うけど、そんなに難しいかね
インデックスアドレッシングを [ ] 記号に当てただけと思うけど、そんなに難しいかね
156デフォルトの名無しさん (ワッチョイ a76b-onFz)
2023/12/01(金) 05:55:20.08ID:sCbOzpGc0 型の話かと思ってたら、いつの間にか 入門者がポインタを理解できない話 になった印象
157はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/12/01(金) 14:51:35.53ID:U5xjJXbM0 >>145
配列 a に &a としたときに得られるのは配列を指すポインタであって配列の先頭要素を指すポインタではない。
(型が違う。 アドレスを数値として見たら同じはずだけど。)
多次元配列にアクセスするとき (添字演算子を重ねて適用するとき) に仕様の通りに解釈していくと配列と先頭要素が都合よく切り替わって最終的にポインタ演算になるのが実に上手いこと出来てる。
配列の要素にアクセスするときの記法を現状のような形にするという前提でならなんだかんだでよく出来ている。
配列に & を付けたら配列を指すポインタになるというのは例外的ではない普通の挙動だからそこに別の意味を割り当てるならそれもやっぱり変則的なややこしい挙動ってことになってしまうよ。
配列 a に &a としたときに得られるのは配列を指すポインタであって配列の先頭要素を指すポインタではない。
(型が違う。 アドレスを数値として見たら同じはずだけど。)
多次元配列にアクセスするとき (添字演算子を重ねて適用するとき) に仕様の通りに解釈していくと配列と先頭要素が都合よく切り替わって最終的にポインタ演算になるのが実に上手いこと出来てる。
配列の要素にアクセスするときの記法を現状のような形にするという前提でならなんだかんだでよく出来ている。
配列に & を付けたら配列を指すポインタになるというのは例外的ではない普通の挙動だからそこに別の意味を割り当てるならそれもやっぱり変則的なややこしい挙動ってことになってしまうよ。
158デフォルトの名無しさん (ワッチョイ 7f6a-l0Ve)
2023/12/01(金) 19:03:26.87ID:Ga+233FE0159はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/12/01(金) 19:23:36.92ID:U5xjJXbM0 >>158
プログラマが直接的に書く機会はあんまりないだろうけど、
暗黙には頻繁に表れていてこのルールがないと上手いこと機能しないって話。
#include <stdio.h>
int main(void) {
int foo[2][3] = {
{1, 2, 3},
{4, 5, 6}};
printf("%d\n", foo[1][2]); // ふたつの座標みたいに見えるけど
// 式を各段階に分解すると……
int(*bar)[3] = foo; // 配列を指すポインタは出てきてる!
int *baz = bar[1];
int qux = baz[2];
printf("%d\n", qux);
}
プログラマが直接的に書く機会はあんまりないだろうけど、
暗黙には頻繁に表れていてこのルールがないと上手いこと機能しないって話。
#include <stdio.h>
int main(void) {
int foo[2][3] = {
{1, 2, 3},
{4, 5, 6}};
printf("%d\n", foo[1][2]); // ふたつの座標みたいに見えるけど
// 式を各段階に分解すると……
int(*bar)[3] = foo; // 配列を指すポインタは出てきてる!
int *baz = bar[1];
int qux = baz[2];
printf("%d\n", qux);
}
160デフォルトの名無しさん (ワッチョイ 65d3-WD8q)
2023/12/05(火) 07:30:58.43ID:72+QzLj/0 c言語初心者です
質問させてください
FILE *fpという宣言の「FILE」にどういった役割があるのでしょうか
*fpは関数によってどこを読み書きするかを指定するためにアドレスを格納することは分かるのですが
それならばint型のポインタで良いような気もします
プログラムを書く上でどうでもいい内容なのですが教えていただければ今日の寝付きが良くなる気がします
質問させてください
FILE *fpという宣言の「FILE」にどういった役割があるのでしょうか
*fpは関数によってどこを読み書きするかを指定するためにアドレスを格納することは分かるのですが
それならばint型のポインタで良いような気もします
プログラムを書く上でどうでもいい内容なのですが教えていただければ今日の寝付きが良くなる気がします
161デフォルトの名無しさん (ワッチョイ eaad-snvD)
2023/12/05(火) 07:53:15.80ID:kkEdYaZP0 >>160
stdio.h の中身を見れば FILE がどう宣言されているか分かるのでは?
stdio.h の中身を見れば FILE がどう宣言されているか分かるのでは?
162デフォルトの名無しさん (スフッ Sd0a-Oc+E)
2023/12/05(火) 08:16:33.53ID:64vzQPx0d >>160 FILE構造体っていうことだけは、どの本にも書いてある。
163デフォルトの名無しさん (ワッチョイ 66d6-8IwF)
2023/12/05(火) 08:26:33.63ID:Sjl8/rh40 実際UNIXのfile descriptorはintでWindowsのファイルハンドルHANDLEはvoid*だ。
こいつらはシステムコールによってカーネルモードで操作されるから中身が完全に見えないようになってる
それとは違って標準Cライブラリはユーザモードで動作するから
処理系依存で中身を操作してもいいように作ったのかもしれない
こいつらはシステムコールによってカーネルモードで操作されるから中身が完全に見えないようになってる
それとは違って標準Cライブラリはユーザモードで動作するから
処理系依存で中身を操作してもいいように作ったのかもしれない
164デフォルトの名無しさん (スッップ Sd0a-Cw2Y)
2023/12/05(火) 08:33:57.88ID:GHHZLCc/d165デフォルトの名無しさん (ワッチョイ 65d3-WD8q)
2023/12/05(火) 09:00:17.71ID:72+QzLj/0 >>160です
普通の構造体の宣言とは異なり要素の記述はありませんが
「FILE」とは「ファイル構造体を使うよ」と宣言しているという意味で
そうしてstdio.h上のFILE構造体の要素に開いたファイルの情報が代入されていくということでしょうか?
「FILE」を記述せずにfopenで開こうとした場合構造体メンバのptrに代入されている数値が使えないのでfopenから戻り値が受け取れず正しく*fpに座標が代入されない
みたいな
そして開くだけならfopenでも開けてしまうとか
普通の構造体の宣言とは異なり要素の記述はありませんが
「FILE」とは「ファイル構造体を使うよ」と宣言しているという意味で
そうしてstdio.h上のFILE構造体の要素に開いたファイルの情報が代入されていくということでしょうか?
「FILE」を記述せずにfopenで開こうとした場合構造体メンバのptrに代入されている数値が使えないのでfopenから戻り値が受け取れず正しく*fpに座標が代入されない
みたいな
そして開くだけならfopenでも開けてしまうとか
166はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/05(火) 10:08:56.47ID:z5PiblaY0 言語仕様的に見れば FILE はストリームを制御するのに十分な情報が入ったオブジェクト型であることと、
アドレス (FILE 型のオブジェクトがある場所) に意味がある場合もあるから
オブジェクトをコピーして機能するとは限らないという程度のことしか書いてない。
FILE にどのような情報が格納されているのかといったことや
詳細な仕組みはホスト環境の事情に合わせて処理系の裁量で決めてよい部分なので、
具体的にどうなっているのかは各実行環境・開発環境ごとに違う。
特に環境依存の細かい部分に立ち入って制御をしたい事情があるのでない限りは
fopen が「なんらかの方法」で FILE 構造体を構築してそのアドレスを返すものであるということだけ知っていれば
普通のプログラマにとって十分なように出来ている。
アドレス (FILE 型のオブジェクトがある場所) に意味がある場合もあるから
オブジェクトをコピーして機能するとは限らないという程度のことしか書いてない。
FILE にどのような情報が格納されているのかといったことや
詳細な仕組みはホスト環境の事情に合わせて処理系の裁量で決めてよい部分なので、
具体的にどうなっているのかは各実行環境・開発環境ごとに違う。
特に環境依存の細かい部分に立ち入って制御をしたい事情があるのでない限りは
fopen が「なんらかの方法」で FILE 構造体を構築してそのアドレスを返すものであるということだけ知っていれば
普通のプログラマにとって十分なように出来ている。
167デフォルトの名無しさん (ワッチョイ 8ac1-Vvnv)
2023/12/05(火) 10:36:22.34ID:NYBtRI3Y0 >>165
3行目から4行目の理解で大体あってるよ
それ以降は何言ってんのか分かんねーから全部アタマの中から破棄していいよ
正確にはFILEってのは抽象データ型であんたは構造体って言ってるけど構造体かどうかは分からんし使う側は知る必要もない
提供者がわざわざ抽象型にして使い手側の負荷を下げてくれるとこを中身がどうとか役割がどうとかさぐんのは筋が悪いんだよ
使えって言われてんだから何も考えずにだまって使えばいいよ
3行目から4行目の理解で大体あってるよ
それ以降は何言ってんのか分かんねーから全部アタマの中から破棄していいよ
正確にはFILEってのは抽象データ型であんたは構造体って言ってるけど構造体かどうかは分からんし使う側は知る必要もない
提供者がわざわざ抽象型にして使い手側の負荷を下げてくれるとこを中身がどうとか役割がどうとかさぐんのは筋が悪いんだよ
使えって言われてんだから何も考えずにだまって使えばいいよ
168デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/05(火) 11:08:08.12ID:h96fo3nj0 FILE構造体ってOS毎に変わるし、コンパイラ実装でも又変わってた様な気がする
169デフォルトの名無しさん (ワッチョイ 71cf-L1V1)
2023/12/05(火) 12:35:58.10ID:4VzMioa/0 FILE*経由だとバッファリングされるから、バッファーのポインタとそこに含まれてるデータサイズも含んでいるだろう
そもそもファイルのシーク位置も含まれてる
まとめると
・ファイルディスクリプターやファイルハンドル
・シーク位置
・バッファー(ポインタ、サイズ、含まれてるデータサイズ)
となるかね
そもそもファイルのシーク位置も含まれてる
まとめると
・ファイルディスクリプターやファイルハンドル
・シーク位置
・バッファー(ポインタ、サイズ、含まれてるデータサイズ)
となるかね
170デフォルトの名無しさん (アウアウウー Sa21-wVFe)
2023/12/05(火) 15:39:55.92ID:QJai9ytva >>160
void *hoge = (void *)fopen("hoge", "wb");
fprintf((FILE *)hoge, "hoge\n");
fclose((FILE *)hoge);
void *hoge = (void *)fopen("hoge", "wb");
fprintf((FILE *)hoge, "hoge\n");
fclose((FILE *)hoge);
171デフォルトの名無しさん (ワッチョイ 71cf-L1V1)
2023/12/05(火) 17:31:14.53ID:4VzMioa/0 FILE*互換の自前のストリームを実装できれば便利なんだがなぁ
継承が無いから、構造体に自前の関数をセットして、何らかの登録関数に渡す感じになるだろう
継承が無いから、構造体に自前の関数をセットして、何らかの登録関数に渡す感じになるだろう
172デフォルトの名無しさん (JP 0Hf9-8IwF)
2023/12/05(火) 17:40:17.96ID:oSX0a7FoH fopencookieとかfunopen
173はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/05(火) 17:48:30.74ID:z5PiblaY0 パイプのインターフェイスをストリームとして開くことが出来るから
適当なスレッドを開いてパイプの受け取り口で受け取った情報を好きなように加工するようにすれば、
パイプに書込む側ではストリームに書き込んだらいい感じに処理してくれるように見える。
というのを Windows でやっているのをどっかで見た。
適当なスレッドを開いてパイプの受け取り口で受け取った情報を好きなように加工するようにすれば、
パイプに書込む側ではストリームに書き込んだらいい感じに処理してくれるように見える。
というのを Windows でやっているのをどっかで見た。
174デフォルトの名無しさん (スッップ Sd0a-Cw2Y)
2023/12/05(火) 18:11:37.45ID:GHHZLCc/d175デフォルトの名無しさん (ワッチョイ 5e5f-Vvnv)
2023/12/05(火) 23:44:52.07ID:9c748LJ40 ソケットディスクリプタってファイルポインタに転生できる?
176デフォルトの名無しさん (ワッチョイ 8a26-yDrh)
2023/12/05(火) 23:48:43.88ID:4UYj/sQ80 >>175
fdopen
fdopen
177デフォルトの名無しさん (ワッチョイ 65a4-WD8q)
2023/12/06(水) 08:34:18.09ID:hjosWl9s0178デフォルトの名無しさん (スフッ Sd0a-nvfk)
2023/12/06(水) 12:07:25.67ID:dR0trs3yd 対策このままなら再発しそうね
https://japan.zdnet.com/article/35212258/4/
https://japan.zdnet.com/article/35212258/4/
179デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/06(水) 16:09:22.53ID:JLoh059d0 仕事なくなったら困る人が大勢いるし
180デフォルトの名無しさん (ワッチョイ 7d01-tBUZ)
2023/12/06(水) 20:24:47.29ID:tBrgYtLt0 free(NULL) は許されるのに
fclose(NULL) は許されないんよな
fclose(NULL) は許されないんよな
181デフォルトの名無しさん (アウアウウー Sa21-VttM)
2023/12/06(水) 21:05:20.14ID:gHtrZlY5a >>180
さらにfflush(NULL)は許されるという一貫性の無さ
さらにfflush(NULL)は許されるという一貫性の無さ
182はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 656a-1gjz)
2023/12/06(水) 21:19:13.20ID:+44Bjs460 fflush の場合は全てのストリームを対象とするという特別なフラグとして NULL を活用しているので無効なポインタとしての NULL とは事情が違う気がするね。
それにしたってNULL を多義的に使っているという意味では一貫性はないけど。
それにしたってNULL を多義的に使っているという意味では一貫性はないけど。
183デフォルトの名無しさん (ワッチョイ 9140-JrwL)
2023/12/06(水) 21:23:39.94ID:bAVe0RWP0 free(NULL)は、おバカなマの為に特別に許容したんだろ
184デフォルトの名無しさん (ワッチョイ 65a4-WD8q)
2023/12/07(木) 02:17:45.58ID:NYiehhGh0 以前ネットでおすすめされていた「苦しんで学ぶc言語」の内容をしっかり理解する段階まできたのですが、次は何をすれば良いのでしょう。
猫でも分かるプログラミングも読んでみたのですが仕様が古すぎてトレースできないのと、私には作者さんの文章の作りが合わず困っています。
まずは簡単なソフトを作りながら学べればと思います。
入門書の次に読めるような本と、そこからアプリケーション開発のイロハが分かる本やサイトを教えていただけないでしょうか。
猫でも分かるプログラミングも読んでみたのですが仕様が古すぎてトレースできないのと、私には作者さんの文章の作りが合わず困っています。
まずは簡単なソフトを作りながら学べればと思います。
入門書の次に読めるような本と、そこからアプリケーション開発のイロハが分かる本やサイトを教えていただけないでしょうか。
185デフォルトの名無しさん (ワッチョイ ea79-4utE)
2023/12/07(木) 07:17:00.47ID:Y9iRVwaI0 ↑みたいなのって目的ないのかね
今後C言語で特に何かやりたい事がないなら別に何もする必要ないよ
今後C言語で特に何かやりたい事がないなら別に何もする必要ないよ
186はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 656a-1gjz)
2023/12/07(木) 08:27:05.09ID:wi0prF2i0 Cで現実的なアプリケーションを作るならホスト環境 (OS など) の事情は無視できないし、具体的な目標なく道筋は決まらないと私も思う。
何の情報もない他人に何かを勧めるというのはしづらい。
目標があるならその分野の既存のコードを「読む」という体験はためになるかもしれない。
実際のコードを見て意味がわからない部分があれば学習が必要な部分だというとっかかりになる。
何の情報もない他人に何かを勧めるというのはしづらい。
目標があるならその分野の既存のコードを「読む」という体験はためになるかもしれない。
実際のコードを見て意味がわからない部分があれば学習が必要な部分だというとっかかりになる。
187デフォルトの名無しさん (ワッチョイ 6646-wNAC)
2023/12/07(木) 09:28:19.84ID:++8K4NmJ0 >>184
> 「苦しんで学ぶc言語」
というのは、これ↓ ?
https://9cguide.appspot.com/index.html
> 苦しんで覚えるC言語
であれば文法解説のようなので、ファイル操作をしてはどう?
cat コマンドを作るとか。
> 「苦しんで学ぶc言語」
というのは、これ↓ ?
https://9cguide.appspot.com/index.html
> 苦しんで覚えるC言語
であれば文法解説のようなので、ファイル操作をしてはどう?
cat コマンドを作るとか。
188デフォルトの名無しさん (ワッチョイ 65ff-WD8q)
2023/12/07(木) 10:04:58.60ID:NYiehhGh0189デフォルトの名無しさん (ラクッペペ MM3e-8Sbt)
2023/12/07(木) 10:23:42.82ID:aHfAXzyRM 業務効率の向上が目的ならC言語は回り道すぎる
他の言語選んだ方がいい気がする
他の言語選んだ方がいい気がする
190デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/07(木) 10:31:24.83ID:HPax2zCP0 ファイル操作の課題出してあげようか
指定した二つのDirにあるファイルを同期させる
単にコピーするのではなく、タイムスタンプの新しいものだけをコピーする
新しいSubdirできていたら、中味があればDirごとコピーする
とりあえずは、新しく作られてファイルの同期まで、
削除については考慮しなくて良い
指定した二つのDirにあるファイルを同期させる
単にコピーするのではなく、タイムスタンプの新しいものだけをコピーする
新しいSubdirできていたら、中味があればDirごとコピーする
とりあえずは、新しく作られてファイルの同期まで、
削除については考慮しなくて良い
191デフォルトの名無しさん (ワッチョイ b501-sZSb)
2023/12/07(木) 10:39:50.34ID:3PWWuEZS0192デフォルトの名無しさん (スプッッ Sdea-GtvU)
2023/12/07(木) 11:21:46.78ID:6u4iKMo7d C言語のスレッドで言う事じゃないがC言語以外の生産性の高い言語を学んだほうがよさそう
193デフォルトの名無しさん (ワッチョイ 71cf-Gt6m)
2023/12/07(木) 11:56:53.00ID:QzDrEJVi0 >>184
CはOSのAPIを直接叩けることがメリットでもあるので、Linuxのプログラミング本を読んでコード書いてみるのが一番良いだろう
マルチプロセス、マルチスレッド、ソケットとか覚えるべき事は沢山ある
Cでやれば根本から理解出来る
CはOSのAPIを直接叩けることがメリットでもあるので、Linuxのプログラミング本を読んでコード書いてみるのが一番良いだろう
マルチプロセス、マルチスレッド、ソケットとか覚えるべき事は沢山ある
Cでやれば根本から理解出来る
194はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-1gjz)
2023/12/07(木) 12:04:11.70ID:FWY3NSUg0 (事務作業などの?) 業務効率化が目的なら Power Automate Desktop の活用を考えた方がいいと思う。
効率化の最初の段階は解決すべき問題を見つけることで、これをきちんと一度で洗い出すのは大抵の場合に出来ない。
雑に作って運用しながら改善するという手順をとるのがのぞましいが、 C で書くとそういう柔軟な体制がとりづらい。
効率化の最初の段階は解決すべき問題を見つけることで、これをきちんと一度で洗い出すのは大抵の場合に出来ない。
雑に作って運用しながら改善するという手順をとるのがのぞましいが、 C で書くとそういう柔軟な体制がとりづらい。
195デフォルトの名無しさん (ワッチョイ 9a2b-ntmn)
2023/12/07(木) 13:30:05.55ID:zYUoekf60 「なにを作りたいのかが大事」ってのは良く分かるんだけど、普通の人が作りたいものって大抵Cじゃない方が…ってなっちゃうんだよな
196デフォルトの名無しさん (ワッチョイ 65ff-WD8q)
2023/12/07(木) 13:42:19.21ID:NYiehhGh0 >>90
そういった事もできるんですねー
>>191
取り組みたいのは山々なのですがuiの作り方からわからないので入手できるバーションで解説されている書籍が欲しいところです。
>>192
基礎を大切にしたいのでcをはじめのうちは使っていきたいと考えています。
>>193
仰る通り根本を理解できればと思います。Linux本ですね。可能であれば簡単なものでおすすめを添えていただけないでしょうか。
>>194
グラフィック系のソフトを使う上で不便なところを楽したい、と言いますか
とにかく画像表示や文字列表示から進めていきたいと考えています。
前述の通り基礎を理解したいので可能であればcで作成したいのです。
そういった事もできるんですねー
>>191
取り組みたいのは山々なのですがuiの作り方からわからないので入手できるバーションで解説されている書籍が欲しいところです。
>>192
基礎を大切にしたいのでcをはじめのうちは使っていきたいと考えています。
>>193
仰る通り根本を理解できればと思います。Linux本ですね。可能であれば簡単なものでおすすめを添えていただけないでしょうか。
>>194
グラフィック系のソフトを使う上で不便なところを楽したい、と言いますか
とにかく画像表示や文字列表示から進めていきたいと考えています。
前述の通り基礎を理解したいので可能であればcで作成したいのです。
197デフォルトの名無しさん (ワッチョイ 3514-I4o8)
2023/12/07(木) 13:42:44.77ID:P4JhXVL60 WindowsアプリならCじゃくて、せめてC++にしておけ
198デフォルトの名無しさん (ワッチョイ 6aa0-0M9k)
2023/12/07(木) 13:43:24.10ID:n9+uyfFo0 楽したい奴にはCは向かない
199デフォルトの名無しさん (アウアウウー Sa21-wVFe)
2023/12/07(木) 14:18:01.05ID:wNl2TimYa C++は変な癖がつく
Cの方が絶対良い
Cの方が絶対良い
200デフォルトの名無しさん (ワッチョイ b501-sZSb)
2023/12/07(木) 15:23:59.73ID:3PWWuEZS0 Cで全部書いてると大変だと思うよ
機能全部使わんでも良いからC++の方が現実的だよ
機能全部使わんでも良いからC++の方が現実的だよ
201デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/07(木) 15:31:37.34ID:HPax2zCP0 大変かどうかは、何を作るかによる
202デフォルトの名無しさん (ワッチョイ b501-sZSb)
2023/12/07(木) 15:35:13.86ID:3PWWuEZS0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 中国で「クレしん」公開延期 対日報復、エンタメに波及 [蚤の市★]
- 経団連会長、日中は建設的対話を 経済3団体が高市首相と初会談も日中関係は話題に登らず… [BFU★]
- 【映画】『クレヨンしんちゃん』 中国で公開延期 対日報復、エンタメに波及 [冬月記者★]
- 日経時間外、5万円割れ 垂直落下始まる [402859164]
- 有識者「高市総理が発言を撤回したり、辞職するしかないと言っている人は、それで日中関係が今まで通りになると思ってる?」 [834922174]
- ウッドデッキで調子こいてたやついたじゃん
- 🦉エッホエッホ アンパンマンは猫舌って伝えなきゃ
- えんやすー
- 中国人「昔の仇を取る」「高市は狂ってる。制裁すればいい」「高市はことの重大さを認識してない」 [931948549]
