C言語なら俺に聞け 141 [無断転載禁止]©2ch.net

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
垢版 |
2017/07/17(月) 21:06:47.63ID:J4JGo3XO
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.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/


http://mevius.2ch.net/test/read.cgi/tech/1494508803/
http://www.geocities.jp/c_cpp_cs/about_c/
2017/08/09(水) 17:11:40.05ID:PV13OBMN
関数の引数として、配列をまるまるスタックにつむには
struct で包むぐらい? typedef はポインタのままよね?
https://ideone.com/3MYBoM
940デフォルトの名無しさん
垢版 |
2017/08/09(水) 17:17:25.80ID:J9yCSat5
>>938
おまえさんはこう言ったんだぜ
> 配列も文字列リテラルも式の中の評価はポインタ型だからな

sizeofつまりunary-expressionは紛れもなく式の1つだ
よって式の中で文字列リテラルがポインタ型というのは正しくない
2017/08/09(水) 17:25:24.78ID:YmDhq+hb
>>940
面倒くさい奴だな
正確には>>937の前者は型の評価結果、後者は式の評価結果だ
sizeof演算子は型名に適用する場合と式に適用する場合の二通りの使い方がある
演算子の動作も評価も異なる
2017/08/09(水) 17:28:25.59ID:PV13OBMN
前置,後置の ++ や -- は式じゃない ってことないし
>>936 は見てる状況を限定しすぎてないかな?
943デフォルトの名無しさん
垢版 |
2017/08/09(水) 17:28:34.22ID:J9yCSat5
>>941
ほほー型の評価結果と式の評価結果とな
じゃあこれはどう説明する?
const char* ptr
assert(sizeof ptr == sizeof "string literal"); //abend
2017/08/09(水) 17:45:41.64ID:YmDhq+hb
>>943
それは式同士の評価結果の比較
ポインタ型のオブジェクト同士を比較してる
int型変数の場合、iと(i+1)のとき評価結果は異なるが、型は同じというのと同じ
945デフォルトの名無しさん
垢版 |
2017/08/09(水) 17:49:19.66ID:J9yCSat5
>>944
えっ!?
assert(sizeof ptr == sizeof("string literal" + 1)); //pass
おまえさん、これが通るのは何が変わったというんだ?
2017/08/09(水) 19:31:37.93ID:7zaXDMDr
今日もガイジID:J9yCSat5は元気だな
947デフォルトの名無しさん
垢版 |
2017/08/09(水) 19:46:02.23ID:J9yCSat5
ん? ガイジの称号はお返ししただろ、ガイジ君
2017/08/09(水) 20:48:57.04ID:afYQHR9U
個人攻撃抜きでやれば、面白い事言っているんだけどなぁ:-P
2017/08/09(水) 20:58:23.97ID:+5xcelsT
糞下らん議論でスレを汚すな
2017/08/09(水) 21:07:56.63ID:8y5srZEo
クソ下らんことが141000レスも続いてんだぞ
14万だ
過去スレなんて見た日にゃ目がつぶれてそのまま気絶だ
2017/08/09(水) 21:09:32.99ID:7zaXDMDr
ガイジID:7zaXDMDrは必死になって、
> printf("Hello, C world!\n"); これがポインタだっ どやっ
これを否定するネタを探してきたらしいが
あてにならない(どうとでも取れる)JIS規格票は根拠にならんぞ

> A pointer is a variable that contains the address of another variable.
文字列は変数じゃない
従ってポインタじゃない これは神が決めた事
2017/08/09(水) 21:23:05.53ID:h3UNfnj7
綺麗な自己紹介
953デフォルトの名無しさん
垢版 |
2017/08/09(水) 21:52:53.42ID:NuBALnab
>>939
配列の時点でスタックに確保されてるけど
それとは別のスタック領域にコピーとして渡したいってことなら構造体かな
954デフォルトの名無しさん
垢版 |
2017/08/09(水) 22:15:20.36ID:aUjAPhEK
このスレは必ず絡んでくるやつが居るな
しかも延々とな

レスされて「この野郎!」と思った時には、深呼吸して落ち着こう。
そしてこうつぶやくのだ「相手にするなヨシオ」とな
955デフォルトの名無しさん
垢版 |
2017/08/09(水) 22:24:18.50ID:J9yCSat5
>>951
ははは、JISつまりISO/IECの和訳はおまえの敵か
自らの死刑宣告を読み上げていることに気付いているのか
2017/08/09(水) 22:26:15.56ID:vlyUfKCW
ワザとやっているんだろう、たぶん
957デフォルトの名無しさん
垢版 |
2017/08/09(水) 22:28:54.98ID:J9yCSat5
個人攻撃は、俺もそんなことしにきているわけじゃないんだが
喧嘩売ってくる馬鹿がいるとき、場合によるが応戦することもある
俺には9条みたいなふざけた縛りはない、それだけのことだ

技術的なことを言うたびにもれなく失笑させてくれる
民進党のブーメラン屋みたいなマゾ野郎がいるから、
ちょっとSっ気出ちまってるんだよ
2017/08/09(水) 22:35:40.33ID:vlyUfKCW
2chで正論言っても仕方がないよ
2017/08/10(木) 00:08:19.99ID:Ahb0l/jg
>>955
ガイジだからわからないんだろうけど、JISもISO/IECも「ポインタ」をいろいろな意味で使っている
ガイジ君はその中の都合の良いところだけ読んだだけ

神の定義と違って「ポインタとは〜〜」というのが無いって気付いて無いんだろうな ガイジだから

実は曖昧さを排除した定義があるがそれは、これだ
6.7.6 Declarators
Syntax
pointer:
* type-qualifier-list opt
* type-qualifier-list opt pointer

つまり規格票でいうポインタとは宣言の中にあらわれる「* [const]」の繰り返しだ w

ガイジ君が規格票を拠り所にした瞬間に
> printf("Hello, C world!\n"); これがポインタだっ どやっ
は、やっぱりお笑いだ わかったら明日手帳申請にいくんだぞ ガイジ
960C言語ますたー ◆oa6k//3vOQ
垢版 |
2017/08/10(木) 00:15:28.54ID:Wh1e+mJZ
これただのBNFですやん
定義じゃなくて文法
961C言語ますたー ◆oa6k//3vOQ
垢版 |
2017/08/10(木) 00:16:03.76ID:Wh1e+mJZ
あ、ごめんなんでもない
アスペかました
2017/08/10(木) 00:23:27.16ID:ukk4ErN5
うんざりしている人は、ガイジをNGにしよう
963C言語ますたー ◆oa6k//3vOQ
垢版 |
2017/08/10(木) 00:27:01.19ID:Wh1e+mJZ
(俺のことじゃないよな…)(´・ω・`)
2017/08/10(木) 01:00:58.59ID:OxRJE4uH
まだやってんのかよ
2017/08/10(木) 01:23:36.79ID:eLvHxdUn
あガガイのガイ
2017/08/10(木) 01:49:11.94ID:7/H0Fazi
fflush(mevius.2ch.net/test/read.cgi/tech/1500293207/);
967デフォルトの名無しさん
垢版 |
2017/08/10(木) 08:25:53.10ID:oM3wka/1
>>959
英語でDeclaratorsって書いてあるの意味わかってる?
リテラルは宣言して使うものじゃないんで、
そこは全然関係ない

 ア フ ォ w w w
2017/08/10(木) 08:29:30.77ID:l1OSsrCe
>>953
そそ
複製を渡して
よばれた関数内での値の書き換えが呼び出し元に伝わらない形が気になってた
2017/08/10(木) 10:25:39.89ID:Ahb0l/jg
>>967
pointerの定義は規格票の中でこれしか無いって言ってるんだよ 他は定義せずに使っている

ガイジはどこまで言ってもガイジだな
2017/08/10(木) 10:35:59.74ID:QIhLvvh/
【問題】
ポインタとは何か
日本語で二行以内で書きなさい
971デフォルトの名無しさん
垢版 |
2017/08/10(木) 11:16:07.94ID:O+DiuWEO

2017/08/10(木) 11:43:42.10ID:Ez0zAyQ5
外人がまっさきに思い浮かべるポインタといえばコレ
http://i.imgur.com/nzuyDvh.jpg
973C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ
垢版 |
2017/08/10(木) 11:44:33.00ID:Wh1e+mJZ
メモリ上のアドレスを格納する変数
2017/08/10(木) 11:48:40.43ID:iih/xgGV
> メモリ上のアドレス

低学歴にもほとがあるな。
2017/08/10(木) 11:49:15.42ID:WglIhH8F
具体的に説明せずに煽るから荒れる
2017/08/10(木) 11:57:50.46ID:O+DiuWEO
>>973
よくある実装ではそうだろうけど必ずしもメモリ上のアドレスでなくてもよかったような?
例えば(何か特殊な事情がないとこんな実装はしないだろうけど)ファイルでもいいんだよね。
*p ってやった時にアクセスできればいいだけだから。そういうアクセスになるようにコンパイルされればそう動く。
2017/08/10(木) 12:23:05.86ID:BijEmwXz
【問題】
自己顕示とは何か
日本語で二行以内で書きなさい
2017/08/10(木) 12:26:02.90ID:Nr0tZQ0b
>>970
オレたちの世代はこれだろ!
http://blog-imgs-51.fc2.com/d/o/n/donboolacoo/PP_20130414161829s.jpg
2017/08/10(木) 12:45:43.96ID:Wh1e+mJZ
>>974
学歴?
>>975
いや、ポインタ自体はただのアドレスだよ
厳密に言えば論理アドレス(物理アドレスでは無い)
ファイルってのは構造体に過ぎないわけで、windowsならFILE構造体ってのが用意されてる
だから、FILE *fp;と書けば、fpはただのアドレスだけど、その指す先はFILE構造体のサイズ分のメモリ領域となる
2017/08/10(木) 12:46:01.19ID:Wh1e+mJZ
ミスった>>976だった
2017/08/10(木) 12:59:59.40ID:hk9jSOXL
>>972
これでしょ
http://www.koinuno-heya.com/syurui/hagyou/images/pointer1.jpg
そっちのポインターは使わない人も多いし
982デフォルトの名無しさん
垢版 |
2017/08/10(木) 14:11:24.78ID:oM3wka/1
>>969
ポインタとは何かという「定義」と、
宣言のうち実体を作る「定義」を混同しているわけね

 ア フ ォ w w w
2017/08/10(木) 15:54:14.88ID:PuWYnGyf
ahoとは何かと言う定義と実装された目前のahoの違い
&でアドレス取ろうとしたら住所不定であったでござるw
984デフォルトの名無しさん
垢版 |
2017/08/10(木) 16:21:59.47ID:oM3wka/1
それはlvalueを除くvalue of an expressionだね
&969; //erroneous
2017/08/10(木) 16:51:40.50ID:R5q9oGzu
長いバトルだのう

>>629
サラっと嘘吐いてないかい?
2017/08/10(木) 16:53:00.40ID:R5q9oGzu
失礼した
茶碗持つね
987デフォルトの名無しさん
垢版 |
2017/08/10(木) 18:00:55.34ID:oM3wka/1
char const **s; // **s を修飾
char * const *s; // *s を修飾
char ** const s; // s を修飾

これなら左と右を間違えたで済むが
あの文面はそうじゃない
988デフォルトの名無しさん
垢版 |
2017/08/10(木) 20:22:14.17ID:hEocmkh5


C言語なら俺に聞け 142
http://mevius.2ch.net/test/read.cgi/tech/1502364083/
2017/08/10(木) 20:24:22.06ID:IhVgxvD4
char const * array = xxx
って初期化したあとで
配列とポインタの区別ってつく?
2017/08/10(木) 20:28:53.63ID:iazj7Dc9
>>982
「ポインタ」はただの単語だ
それに意味を与えることが「定義」

> ポインタとは何かという「定義」と、
> 宣言のうち実体を作る「定義」を混同しているわけね
前者後者で意味を分けるって事はお前が「定義」したって事だ

ガイジのお前がな w
991デフォルトの名無しさん
垢版 |
2017/08/10(木) 20:29:20.75ID:sSyWFoa+
>>988
2017/08/10(木) 20:41:57.65ID:QtKgWI2k
>>987
ポインタの型修飾子は左側の*(ポインタ型)への修飾であってるだろ
右側のsを修飾したら識別子への修飾になってしまう

型指定の方のconstは構文規則が違うから、一緒に語ること自体がアレだけど
2017/08/10(木) 20:53:06.50ID:pUVptWbb
なんで次スレ勝手にワッチョイなってんの?
2017/08/10(木) 21:01:59.30ID:eLvHxdUn
勝手にガイジ対策草ア!!
2017/08/10(木) 21:07:33.98ID:LT6YffV+
恣意的な煽りしている奴がいるからだろう
2017/08/10(木) 21:10:04.72ID:iazj7Dc9
> printf("Hello, C world!\n"); これがポインタだっ どやっ
やはり、これはガイジが自分で定義した「ポインタ」の説明だったな
997デフォルトの名無しさん
垢版 |
2017/08/10(木) 21:25:49.94ID:dUeZi9GF
ワッチョイ無しでスレ立て直せ
2017/08/10(木) 21:26:48.02ID:eLvHxdUn
ガイジ連呼厨対策になるしいいんじゃね?
999C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ
垢版 |
2017/08/10(木) 21:37:35.20ID:Wh1e+mJZ
1000欲しいな
2017/08/10(木) 21:38:17.92ID:Wh1e+mJZ
俺のものっ
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 24日 0時間 31分 31秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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