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

■ このスレッドは過去ログ倉庫に格納されています
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/07(月) 04:01:49.30ID:ITzYZ/9b
 ∧_∧      半端者はみっくみくにしてやんよ
 ( ・ω・)=つ≡つ
 (っ ≡つ=つ
 /   ) ババババ
 ( / ̄∪
2017/08/07(月) 04:23:54.04ID:Uo4tfgNR
>>740
printf("なんちゃら");
はprintfと言う外部名を持つ手続きに引数として文字配列の先頭アドレスを与えて呼び出すという意味しかない
わかったかね ボンクラ
2017/08/07(月) 04:32:31.96ID:5iW9wRlr
月曜の朝っぱらから元気だな
とレス辿ったら昨日からずっとやってたのか
2017/08/07(月) 04:34:25.12ID:ITzYZ/9b
>>742
敢えてprintfの型に触れず誤魔化してるようにしか見えないが。printfの型が決まってなければ、明らかにコンパイルできない文だ。
2017/08/07(月) 04:49:23.24ID:ITzYZ/9b
 ∧_∧      半端なヤツはみっくみくにしてやんよ
 ( ・ω・)=つ≡つ
 (っ ≡つ=つ
 /   ) ババババ
 ( / ̄∪
2017/08/07(月) 04:55:23.95ID:ITzYZ/9b
「戻り値」はダメとか言ったらキリがない。
言葉の世界は多数決で決まる。
時代錯誤な正義を振りかざすな。
2017/08/07(月) 05:16:25.45ID:ITzYZ/9b
const char a[1] = "";
const char *p = "";
assert(sizeof(a) == 1);
assert(sizeof(p) == sizeof(void *));
a++; // Error
p++; // OK
2017/08/07(月) 05:33:55.94ID:ITzYZ/9b
我が国は教育上の配慮を生徒よりも先回りして先回りして考えているから、教育水準をここまで
高めることが出来たんだ。教育上の配慮がないなら、答えを砂漠の中から探させることになってしまうぞ。
お前は天才だからいいが、エリートじゃない一般人は教育上の配慮を行った教材じゃないと生き残れない。
2017/08/07(月) 06:44:33.33ID:qWjEOBrh
>>744
コンパイルするのにprintfの型が既知である必要なんてないだろ
何言ってんだコイツ
2017/08/07(月) 06:52:48.38ID:bZKJxmgb
>>672
これどこの定義か知らんけど(変数じゃなくて)関数へのポインタって言うのもあるよね?
2017/08/07(月) 07:37:27.89ID:ITzYZ/9b
                  ┌─┐??
                  |も.|??
                  |う |??
                  │来│??
                  │ね│??
                  │え .|??
                  │よ .|??
       バカ    ゴルァ  │ !!.│??
                  └─┤    プンプン??
     ヽ(`Д´)ノ ヽ(`Д´)ノ  (`Д´)ノ    ( `Д)??
     | ̄ ̄ ̄|─| ̄ ̄ ̄|─| ̄ ̄ ̄|─□( ヽ┐U??
〜 〜  ̄◎ ̄  . ̄◎ ̄   ̄◎ ̄   ◎−>┘◎
752デフォルトの名無しさん
垢版 |
2017/08/07(月) 07:48:24.65ID:xW9C/CpC
>>735
仮引数ってプロトタイプ宣言の引数じゃなかったっけ?
あれ、関数の型を教えるだけだから、型だけ書いて変数書かないとかもおkだお。

int hoge(int);
2017/08/07(月) 08:38:13.41ID:oeQKd2lB
あいや〜
昔 -traditional でgccでコンパイルして
動かせた化石ソースが、
今はもう -traditional使えないんで
コンパイル出来ない、動かせないアルよ。
2017/08/07(月) 09:14:12.38ID:dOHD//zn
>>752
仮引数かいてなくて どっちがどっちじゃ! と迷う qsort
qsort(void*, size_t , size_t , int (*)(const void*,const void*)):
2017/08/07(月) 09:25:07.14ID:Uo4tfgNR
>>750
自分で調べて一次ソースを持ってこい
許容されるソースはK&RかISO/JIS/ANSIに準ずる規格票
2017/08/07(月) 09:27:48.56ID:Uo4tfgNR
>>754
仮引数もガイジ認定したい用語だ
原文ではparameter
実引数をあらわすargumentはactual argumentまたはactual parameterとも呼ばれる
実仮引数 w まさにガイジ用語
2017/08/07(月) 09:29:25.08ID:dOHD//zn
>>756
漢字にすると面倒な言葉だね・・・ たまに何だっけ?ってなることがある
2017/08/07(月) 09:30:00.41ID:r4dv7rmY
化石ソース

#include<stdio.h>

int function(a, b, c)
int a;
int b;
int c;
{
return a*b + c;
}

int main(void){
printf("%d\n", function(5, 4, 10));
return 0;
}
759デフォルトの名無しさん
垢版 |
2017/08/07(月) 09:30:57.72ID:xW9C/CpC
>>754
いあ。。。
実引数の方みろよとしか。。。
プロトタイプ宣言に何期待してんだよ。
2017/08/07(月) 09:35:47.75ID:dOHD//zn
数使ってるなら、そのうち覚えるけど、そうでもないのはいちいち調べるのに手間だし
最近のは プロトタイプをポップアップ表示したりする環境もあるし ね
2017/08/07(月) 10:58:51.07ID:oP4SeJHR
英語圏のガイジはどんな用語擬きの英語使うか気になる
2017/08/07(月) 12:44:52.49ID:bZKJxmgb
>>755
お前が調べて持ってこいよ w
2017/08/07(月) 14:01:38.84ID:Uo4tfgNR
>>744
ウソついてゴメンなさいはしないのか?
2017/08/07(月) 14:02:13.15ID:Uo4tfgNR
>>762
見つけられないなら、お前の戯言
2017/08/07(月) 14:21:07.21ID:Oq7cYNKv
JavaにポインタがなくてCにポインタがあるのはという話が出ているが
データのあるアドレスの扱いをポインタで実現したかそうでないかということだと思われる
Javaではint[]型のような参照型の変数にはアドレスが入っている
他例えばJavaScriptではNumber, Booleanのようなラッパークラスがint*などに似た役割を果たす
2017/08/07(月) 14:23:34.73ID:Oq7cYNKv
int*というよりはint *constか
2017/08/07(月) 14:27:21.13ID:Jd+yR0yr
char*ってなんなの?
char型の配列の先頭のアドレスを入れる配列って事?

つまりchar* a = {"hello","hoge","bread"};

こう?
2017/08/07(月) 14:36:26.52ID:Oq7cYNKv
charは256種類の値をとる型でありそれを使って'A'とか文字1つを表す
char型の配列はcharを一列に並べることによってUTF-8ヌル終端文字列を表す
その先頭のアドレスはchar*型なのでC言語ではchar*が文字列型になる
文字列の配列が欲しければ(char*)*つまりchar**
2017/08/07(月) 14:44:29.34ID:Cf79G+d9
>>768
char a と char* aは同じってこと?
char**は文字列の配列だから

さっきの例でchar** aならa[0]はhello, a[1]はhoge?
2017/08/07(月) 15:36:39.87ID:YE/9ro9h
http://codepad.org/O7uohbtZ
2017/08/07(月) 15:53:42.35ID:fj1hwtp7
>>770
うーん
char とchar*ってやっぱり違うのか?
charが配列でchar*は2次元配列みたいなものなのかな?
char**は3次元配列でchar***(以下略


char a[][] これは2次元配列
char *a[] これも2次元配列
char **a これも2次元配列
って事なのかな?
2017/08/07(月) 16:34:16.06ID:YE/9ro9h
http://codepad.org/zgPHa4lf
2017/08/07(月) 16:35:01.20ID:bZKJxmgb
>>764
はあ?
お前関数へのポインタも知らんのか? w
2017/08/07(月) 16:54:50.74ID:Uo4tfgNR
>>773
「(変数じゃなくて)関数へのポインタ」があると主張している、お前が一次ソースもってこい
775デフォルトの名無しさん
垢版 |
2017/08/07(月) 18:33:10.56ID:OgCRmlag
>>662
ポインタだよ
おまえまさか「配列を渡した」とか思ってるのか?
手帳がいるのおまえだろ、あ既にもってるんだっけw
2017/08/07(月) 18:56:35.36ID:DdwwpY1/
>>765
全然ポインタが何か分ってねぇ。cだって配列あるじゃねーか。
2017/08/07(月) 19:43:35.00ID:r7C/NYo5
>>774
横からだけどこれでいいか?
K&R第2版Chapter 5より
The use of comp in the line
if ((*comp)(v[i], v[left]) < 0)
is consistent with the declaration: comp is a pointer to a function, *comp is the function, and
(*comp)(v[i], v[left])
is the call to it.
2017/08/07(月) 19:53:25.65ID:g8RW1Chx
ポインタが変数ではない別の何かだと言うのは、始めて聞きました
2017/08/07(月) 19:56:00.52ID:r7C/NYo5
>>778
>>750のことなら(変数へのポインタではなく)関数へのポインタって意味だと思うよ
2017/08/07(月) 20:00:14.61ID:YE/9ro9h
関数のポインタの配列
http://codepad.org/GP2rFL5Z
781デフォルトの名無しさん
垢版 |
2017/08/07(月) 20:31:35.85ID:OgCRmlag
>>778
ポインタは、アドレスを意味する値であって
それを格納しうる変数には限らない
2017/08/07(月) 20:59:10.29ID:yPIvhEga
論点が何なのかさっぱりわからん
783デフォルトの名無しさん
垢版 |
2017/08/07(月) 21:02:26.86ID:OgCRmlag
論点はポインタの使い途wwwwwwwww
2017/08/07(月) 21:04:00.81ID:DdwwpY1/
> ポインタは、アドレスを意味する値

酷いな。小学生かよ。
2017/08/07(月) 21:07:10.64ID:g8RW1Chx
ポインタが変数なのか変数でないのか、結論は出ましたか?
2017/08/07(月) 21:22:08.65ID:4hdYUdtg
>>778
理解力無さすぎだろ...
787デフォルトの名無しさん
垢版 |
2017/08/07(月) 21:23:07.98ID:OgCRmlag
>>785
それは論議の結論ではなく、単なる事実

# 年齢だか学歴がどうたら言ってるアフォはスルー
2017/08/07(月) 21:24:03.98ID:0SF3W3/o
(void *)0 は何になるんで
2017/08/07(月) 21:26:45.04ID:yPIvhEga
議論をするなら自分の主張くらいはっきり書けよ
790デフォルトの名無しさん
垢版 |
2017/08/07(月) 21:29:47.13ID:OgCRmlag
>>788
ポインタ
2017/08/07(月) 21:31:15.86ID:DdwwpY1/
一つ言えることは、幼稚園児 ID:OgCRmlag がオレオレ定義したポインタ

> ポインタは、アドレスを意味する値

を誰も支持することはないだろうということ。
2017/08/07(月) 21:33:48.90ID:DdwwpY1/
ID:OgCRmlag一人頓珍漢なこと言ってるだけあって、他は言ってること同じということか。
こいつ一人スルーすれば議論するようなことは何もない。
2017/08/07(月) 21:34:30.59ID:yPIvhEga
支持じゃなくて規格書を根拠としないと
794デフォルトの名無しさん
垢版 |
2017/08/07(月) 21:39:11.76ID:OgCRmlag
>>793
そうだな、おまえが根拠を示す必要があるな
どこに pointer is an lvalue とあるのか頑張って探せや
2017/08/07(月) 21:42:00.46ID:yPIvhEga
おれが?
冗談でしょ
2017/08/07(月) 21:44:02.82ID:DdwwpY1/
そもそも質問者は定義を聞いているんじゃない。使い道を聞いているんだ。
printf()で使う。これで答えのはずだ。

それなのにおまえらは規格書も読まずオレオレ定義を展開しやがって。
797デフォルトの名無しさん
垢版 |
2017/08/07(月) 21:45:41.08ID:OgCRmlag
手帳申請しろとまで言っといて
都合が悪くなったら手のひら返ししてるアフォはスルー
798デフォルトの名無しさん
垢版 |
2017/08/07(月) 21:46:23.64ID:OgCRmlag
まあ、俺じゃねえって言い訳しかできねえだろうなw
2017/08/07(月) 21:47:16.90ID:e6/ebI1X
何このどんぐりの背比べ…
2017/08/07(月) 21:48:21.28ID:uTywTMsC
2個。
801デフォルトの名無しさん
垢版 |
2017/08/07(月) 21:52:43.06ID:OgCRmlag
751
2017/08/07(月) 21:53:53.63ID:yPIvhEga
アホ二人でスレ汚しか
感心しないな
803デフォルトの名無しさん
垢版 |
2017/08/07(月) 21:55:26.92ID:OgCRmlag
やーい直球の罵倒語しか言うことなくなってやんのwwwwwwwww
2017/08/07(月) 21:55:37.37ID:DdwwpY1/
ID:OgCRmlag ID:yPIvhEga ケンカしてるこの二人をNGにするとすっきり。
2017/08/07(月) 21:58:53.51ID:yPIvhEga
えっ?
おれ?

ただの通りすがりだ
2017/08/07(月) 21:59:31.43ID:uTywTMsC
※未承認広告※

新 台 入 替 !
807デフォルトの名無しさん
垢版 |
2017/08/07(月) 21:59:33.21ID:OgCRmlag
スルーされてる約1名が相手して貰えている人をクリティカル嫉妬wwww
2017/08/07(月) 22:01:27.09ID:yPIvhEga
>>806
数学得意な人?
2017/08/07(月) 22:03:03.86ID:yPIvhEga
ビジービーバー関数はなんでC言語では書けないの?
810デフォルトの名無しさん
垢版 |
2017/08/07(月) 22:06:55.11ID:OgCRmlag
んなこたどうでもいい
&演算子が生じる結果は左辺値なのかよ?
6.5.3.2 にはそんなこと書いてねえぞボケこら
811デフォルトの名無しさん
垢版 |
2017/08/07(月) 22:11:16.54ID:OgCRmlag
        ゴガギーン
             ドッカン
         m    ドッカン
  =====) ))         ☆
      ∧_∧ | |         /          / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     (   )| |_____    ∧_∧   <  おらっ!出てこいID:DdwwpY1/
     「 ⌒ ̄ |   |    ||   (´Д` )    \___________
     |   /  ̄   |    |/    「    \
     |   | |    |    ||    ||   /\\
     |    | |    |    |  へ//|  |  | |
     |    | |    ロ|ロ   |/,へ \|  |  | |
     | ∧ | |    |    |/  \  / ( )
     | | | |〈    |    |     | |
     / / / / |  /  |    〈|     | |
    / /  / / |    |    ||      | |
   / / / / =-----=--------     | |
2017/08/07(月) 22:11:31.00ID:uTywTMsC
>>809
計算不能であることが証明されている。Wikipediaより。
2017/08/07(月) 22:29:15.82ID:uTywTMsC
※未承認広告※
パチパチしませんか?
2017/08/07(月) 22:33:57.24ID:yPIvhEga
なんでWikipedia
815デフォルトの名無しさん
垢版 |
2017/08/07(月) 22:34:35.17ID:OgCRmlag
手帳所持者は逃げたかwww
2017/08/07(月) 22:37:08.08ID:yPIvhEga
>>812
何言語なら書けますか?
2017/08/07(月) 22:40:09.74ID:uTywTMsC
>>816
現状、どんな言語でも駄目。量子コンピュータで計算の概念が再定義される位のことが起こらないと無理。
2017/08/07(月) 22:50:03.04ID:yPIvhEga
ありがとうございます
あなたのレベルが大体わかりました
2017/08/07(月) 22:59:26.14ID:uTywTMsC
おそらく、量子コンピュータや生物コンピュータでも計算不能だろう。
2017/08/07(月) 23:09:18.43ID:nw7xsMvr
だからこんなキチガイはスルーしろと言ったのに…
ただのキチガイなんだから
2017/08/07(月) 23:16:17.80ID:uTywTMsC
ハムスターをリモコンで操作したい。
2017/08/07(月) 23:33:23.62ID:yPIvhEga
女の子をリモコンで操作したい
2017/08/08(火) 00:41:25.03ID:eouAXJYK
>>777
どう見てもcompは変数なんだが
2017/08/08(火) 00:45:20.16ID:eouAXJYK
>>775
> おまえまさか「配列を渡した」とか思ってるのか?

配列名がどのように扱われるか知らないのか 完全なガイジ
とっとと手帳申請しろ
2017/08/08(火) 00:49:28.21ID:eP5zQIOv
いつまでやっているんだ
2017/08/08(火) 00:57:11.00ID:MZyamSKY
>>823
そのバカには何言ってもダメから
スルーしろ
2017/08/08(火) 01:47:17.25ID:uStlgM0t
>>826
いや馬鹿は>>778が読解力なさすぎと指摘されているのに同じ解釈を繰り返している>>823でしょ。
ID:r7C/NYo5はcompが変数であることは否定していないし、その前の議論は(変数へのポインタではなく)関数へのポインタが存在するかどうかだ
2017/08/08(火) 01:57:36.64ID:t5Eof3Jx
>>823
compそのものは変数だけど、関数を指しているポインタでしょ?
ID:Uo4tfgNRが関数へのポインタが存在しないって主張していらっしゃるようだから示しただけだよ

>>774の「(変数じゃなくて)関数へのポインタ」
の「変数じゃなくて」は「ポインタが変数でない」と言っているのでなくはなく「ポインタの指す先が変数でなく関数」と言っていると思うんだけど違うかいな?
A pointer is a variable that contains the address of another variable. の最初のvariableじゃなくてanother variable の方ってことね
2017/08/08(火) 01:58:16.25ID:geODKJHF
(変数でない)関数へのポインタが存在するかどうかだ

じゃないの?
2017/08/08(火) 02:01:15.50ID:O87Z3HpH
>>780再掲
http://codepad.org/GP2rFL5Z
2017/08/08(火) 02:05:22.89ID:yYsi1PP7
typedef void (*INTVEC)(void);
(INTVEC)0;
2017/08/08(火) 02:08:26.75ID:t5Eof3Jx
>>829
(変数でない)は関数かポインタかどっちにかかっていると思う? 俺は関数だと思う
2017/08/08(火) 02:10:43.85ID:geODKJHF
関数は変数じゃないと言うのは理解出来るけど
関数へのポインタが変数じゃないと考えている人がいるようなので
2017/08/08(火) 02:20:03.78ID:uStlgM0t
少なくともID:bZKJxmgbは違うと思うよ
2017/08/08(火) 02:26:48.57ID:O87Z3HpH
http://codepad.org/hfnT13zf
2017/08/08(火) 02:27:16.73ID:geODKJHF
違うなら良いんです

ポインタは変数じゃないと結論が出るかどうかを楽しみにしているだけなので
2017/08/08(火) 03:43:17.45ID:eouAXJYK
>>828
「ポインタは変数である」
と言う文脈で「ポインタの指すものが変数じゃ無いものがある」と言い出すガイジが存在するって言ってるのか?
2017/08/08(火) 04:07:36.23ID:geODKJHF
変数へのポインタが存在するかどうかは、議論になってないと思いました
2017/08/08(火) 04:10:20.00ID:geODKJHF
議論になっているのは、
「ポインタは変数ではない」あるいは
「ポインタには変数で無いものが存在する」ってことかな?

どちらにしても、何か違和感を感じざるを得ません
2017/08/08(火) 05:31:31.11ID:fn/KDcW/
ポインタという言葉が、ポインタ型かポインタ変数かどちらのことを意味しているのかは文脈次第
関数へのポインタ云々の主張はポインタ型のことを言っているし、ポインタは変数云々の主張はポインタ変数のことを言っている
両者を混同して議論しているから混乱する

JIS X 3010
ポインタ型(pointer type)は,被参照型(referenced type)と呼ぶ関数型,オブジェクト型又は不完全型から派生することができる。
ポインタ型は,被参照型の実体を参照するための値をもつオブジェクトを表す。被参照型Tから派生されるポインタ型は,“Tへのポインタ”と呼ぶ。
被参照型からポインタ型を構成することを“ポインタ型派生”と呼ぶ。

例)
関数型
 被参照型 : void func(void), int func(int)
 ポインタ型 : void (*func)(void), int (*func)(int)

オブジェクト型
 被参照型 : int, double, array[]
 ポインタ型 : int*, double*, array

不完全型
 被参照型 : void
 ポインタ型 : void*
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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