5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

[C]ポインタってそんなに難しいの?***[C++]

1 :仕様書無しさん:03/11/09 01:44
前スレ
[C]ポインタってそんなに難しいの?**[C++]
http://pc.2ch.net/test/read.cgi/prog/1050835338/

ポインタについて熱く語れ。


2 :仕様書無しさん:03/11/09 01:47
前スレの990- お前らは赤っ恥をかいてる。他人を笑う前に自分の愚かさを嘆こうね。

3 :仕様書無しさん:03/11/09 01:51
まだポインタネタでひっぱるかね。。。
飽きない?

4 :名無し@沢村:03/11/09 01:52
物事はすべて実践だけで覚えなければならない。
理解の助けにするために理論を使ってはならない。ちょっとでも理論に頼ろうとすると覚えられなくなるぞ。
日本における英語教育がまさにそうだよ。
英語の理解になまじ理論に頼ろうとする部分を取り入れたから、日本人は英語が苦手なままなんだよ。日本における英語教育の欠陥だよ。
徹底して実践一辺倒でいかなくてはならない。
アメリカの子供を見てみろ!!英語だけじゃなく、何でもそうだよ。


5 :名無し@沢村:03/11/09 01:53
プログラミング技術・ソフトウエア技術についてもそうだ。
これらは実践だけで覚えるのが正しい覚え方だ。つーかバカの正しい覚え方だ。
頭がすごくいいやつは理論で覚えたっていいよ。
だが、日本人の99%はバカなんだから、バカは実践でしか覚える方法がないということだよ。
それどころか、理論を覚える時だって、実践で覚えないと覚えられないよ。
理論を覚えるのに、頭で理解しようとしても、難しくて理解できるもんじゃないよ。
そんな時、いろんな例題を何千回、何万回、何億回も反復すると覚えられるんだよ。
つまり世の中のあらゆる物事は実践だけで覚えなさいってことだよ。
理論でさえもね!


6 :名無し@沢村:03/11/09 01:54
>理論覚えなきゃ実践すら出来ないからね。

そんなことはない。理論なんてかけらも覚えなくったって軽く実践することができるぞ。
アメリカの子供を見ろ!英語の理論なんかかけらも知りはしないが、彼らは軽く英語を実践しているぞ!!


7 :名無し@沢村:03/11/09 01:55
プログラマーの英語力はどれくらいですか?
ポインタってそんなに難しいの?
オブジェクト指向を理解できんとが何で悪いとや?

おまいらよ、おまいらにとって、英語、ポインタ、オブジェクト指向は、鬼門のようだな。
まあ英語はPGだけでなく、日本人全体にとっての鬼門だけどな…。
日本人は、英語を覚えられないだけでなく、ひとつの分野で一人前になるための鬼門を超えることができないということだな。


8 :仕様書無しさん:03/11/09 01:56
XXX func(){
return &func;
}

XXXには何を書いたらいいか答えよ。

関数ポインタをどれくらい理解できているかクイズ。難易度A

9 :仕様書無しさん:03/11/09 01:58
宣言と同時に初期化するときは *p=&a なのに
宣言した後に代入するときは p=&a っていうのはどういうことか?

普通に代入するときは p=&a なのに
引数に渡すときは *p=&a(の関係に見える)になるのはどういうことか?


10 :仕様書無しさん:03/11/09 02:03
前スレの>>922はおもろいな

11 :名無し@沢村:03/11/09 02:08
>>9
ハゲ!!初期化で*p=&aになって代入でp=&aになるんじゃねーよ!!
なるんじゃねーよ!!物理現象じゃねーんだよ!!なるんじゃねつーっの!!
仕様でそうしてあるんだよ!!
なるんじゃねーよ!!してあるんだよ!!ハゲ!!
phoneは電話のフォンなのにどうしてphonでなくphoneなの?何でeが必要なの?と聞くか?ハゲ!!

12 :仕様書無しさん:03/11/09 02:11
>>922は降臨するのか?

13 :仕様書無しさん:03/11/09 02:11
>>10
本当はみんな悔しいんだよ。ウワァァァンヽ(`Д´)ノ
void main(...でもいいじゃないかと強弁する人の気持ちが少しわかったよ。

14 :仕様書無しさん:03/11/09 02:16
>>13
ワラタ

15 :仕様書無しさん:03/11/09 02:20
>>8
これってvoid*じゃだめなの?

16 :922:03/11/09 02:27
しょうが無いので教えてあげます。

Cにはなんでもかんでも入れられるような汎用ポインタ型は無いんです。

void *に保証されているのはオブジェクトを指すポインタを入れられることだけ。
関数ポインタをvoid *に入れるのは移植性の高くない解決方法。
関数ポインタはオブジェクトを指すポインタよりはるかに大きい場合もある。

しかし、関数ポインタは引数や戻り値の型の違いによって大きさが変わることがないと保証されているので
void (*foo)()を汎用的な関数ポインタ型とみなしてキャストして居れてもOK。
呼び出すときにちゃんと正しい型に戻すのは必須ですが。

わかった?

17 :仕様書無しさん:03/11/09 02:32
>>16
わかんないです。
結局XXXXのところになんて書くの?

18 :922:03/11/09 02:39
XXX func(){
return &func;
}

この形だとXXXに何を入れてもだめ、が正解。C++では可能ですが。

代わりの答えは

typedef vod (*func_t)();
func_t func(){
return (func_t)&func;
}

もしくは

struct func_t{
struct func_t (*foo)();
};
func_t func(){
func_t f;
f.foo=&func;
return f;
}

19 :仕様書無しさん:03/11/09 02:39
>>17
void *

20 :922:03/11/09 02:40
>>19
ギャグですか?ユーモアありますね^ ^

21 :仕様書無しさん:03/11/09 02:44
>>18
どうもありがとうございます。
こういう状況ってどういう時にありえるんですか?

22 :仕様書無しさん:03/11/09 02:45
XXXにtypedefや構造体宣言が入っちゃうってのも卑怯だよなぁ。
問題が悪いんじゃねーの?





いや、負け惜しみですよ。ウワァァァンヽ(`Д´)ノ

23 :922:03/11/09 02:49
>>21
前スレでも誰か言ってたけど状態マシンを作るときに必要になったり。

24 :仕様書無しさん:03/11/09 02:53
>>23
ええ、そうなんですか?
状態マシンは分かるのですが状態マシンだったら
こんなことしなくても最初から型が分かっているような気もしてます。

どんな状態マシン作るときですか?


25 :922:03/11/09 02:57
笑う->怒る->笑う・・・を永遠に繰り返す状態マシンがあるとします

struct func_t{ struct func_t (*foo)(); };

func_t smile();
func_t angry();

func_t smile(){
func_t f;
f.foo=&angry;
return f;
}

func_t angry(){
func_t f;
f.foo=⌣
return f;
}

main(){
func_t f;
f.foo=⌣
while(1)
f=f.foo();
}

と、こうなります。

26 :922:03/11/09 03:00
例あんまよくないかな?

27 :仕様書無しさん:03/11/09 03:02
>>25
なるほど。
状態見て、次にやることをきめるのは処理の中なんですか?

あんまり見たこと無いんですけど…

28 :922:03/11/09 03:10
そう?まぁ今はこんな感じに書くのかな?

struct State{
virtual State *next()=0;
};

struct Smile{
virtual State *next();
} smile;

struct Angry{
virtual State *next();
} angry;

State * Smile::next(){
return &angry;
}

State *Angry::next(){
return ⌣
}


main(){
State *s=⌣
while(1)
s=s->next();
}

29 :922:03/11/09 03:15
State継承してなかった・・・

30 :仕様書無しさん:03/11/09 03:30
>>28
意味通じてないから寝ます

31 :仕様書無しさん:03/11/09 03:48
ついていけないのでおいらも寝る。


32 :仕様書無しさん:03/11/09 08:58
(1) 「今どの状態にいるかを保持する変数」が関数ポインタで
 その状態を処理する関数を指している
(2) その関数を呼ぶと、次の状態(をあらわす関数ポインタ)が返される。
(3) 関数の戻り値が次の状態なので、(1)のポインタに代入される。

XXX end_state() { return NULL; }
XXX third_state() { return end_state; }
XXX second_state() { return third_state; }
XXX initial_state() { return second_state; }

XXX state = &initial_state;
XXX next_state;
while ((next_state = (*state)()) != NULL)
  state = next_state;

とかやるわけですな。
XXXは、「次の状態を表す関数へのポインタ」という型ね。
このやり方が有用かどうかはともかく。

33 :仕様書無しさん:03/11/09 09:03
int* p; // C++使いに多いを突き詰めていくとC/C++の引数渡しの方法には値渡ししかないという境地まで行き着く。
「ポインタ渡しは?C++には参照渡しもあるよ」という意見は
後者で悟った人間にとっては「その考えは直交性が低いな…フッ…。」という事になる。

後者にC++使いが多いというのは、ある意味ではそういう物事の直交性とかを考えるのが苦手なタイプは
C++を使いこなせなかったのではないかとさえ邪推する。

キーワードは直交性、つまりは合理的な考え方ですね。
物事を正しく切り分けて考える能力が必要です。
これはゆくゆくはジェネリックや
テンプレートメタプログラミングに繋がっていく考え方ですよ。

34 :仕様書無しさん:03/11/09 09:47
>>33
894さんに「値渡し⊇参照渡し」の辺りをもっと説明してほしかった気もする。

35 :仕様書無しさん:03/11/09 10:37
>>73
チミにノイマン型アーキテクチャとハーバード型アーキテクチャについて語って欲しい気がする。

36 :仕様書無しさん:03/11/09 11:56
オートマトン理論とかも確かに役には立ちますが、
機械相手だと効率やタイミングも絡んできますので、
なかなか理想的には実装できないんですよね。

理論も実践も順序は別として両方大事っすね。


37 :仕様書無しさん:03/11/09 12:05
>>33
で? ポインタのアドレスも値だ!とか言い出すつもりか。
じいさんはすっこんでろや。

38 :名無し@沢村:03/11/09 12:15
ポインタが理解できないやつは、複素数も理解できまい?
複素数が2乗すると-1になるiを使って、 x + iyの形になる数ということだけは暗記しているが、それより先には一歩も進めまい。ポインタが理解できないやつにはな…。
複素数a、bを使って|a|2+|b|2が1になる状態というのは、どういう状態なのかさっぱり見当がつくまい?

39 :仕様書無しさん:03/11/09 12:57
無知を覚悟でおききしますが、
「自乗」「二乗」ってa2とかですか?

 |a|2 って何ですか?

単純に数式が理解できない。
数学的にもプログラム言語的にも見たことがない...
だから当然「状態」なんてわけわからん(鬱

40 :仕様書無しさん:03/11/09 13:04
i * i == -1 // 虚数i
x + iy // 複素数
|a|2+|b|2 == 1 // エキゾチックな状態

41 :仕様書無しさん:03/11/09 13:10
えきぞちっく...

42 :仕様書無しさん:03/11/09 13:16
動きゃいいじゃん

43 :ななし:03/11/09 13:17
コンパイラが余計な事をしてくれるのが参照渡し
一切面倒を見てくれないのが値渡し

44 :仕様書無しさん:03/11/09 13:22
>>42
そういうことをいうヤシが
銀行のATMを停止させたり
原子炉を暴走させたりする。

45 :名無し@沢村:03/11/09 14:50
>>39
|a|2とは|a|の2乗のことよ。
ほら、2の小さいやつがキーボードにないだろ?
だから|a|2と書いたのよ。わかりにくかったかな? 

46 :名無し@沢村:03/11/09 14:53
>>40
ハゲ!!
答えを教えてやるよ。
i * i == -1 // 虚数i
x + iy // 複素数

ここまでは○だ。

|a|2+|b|2 == 1 //量子的ビット重ねあわせの状態よ。
|a|2とは|a|の2乗のことな。ほら、2の小さいやつがないから…

47 :仕様書無しさん:03/11/09 14:57
>>44
洒落にならん。それはやめてくれw

48 :仕様書無しさん:03/11/09 16:19
ポインタって変数と同じようなものでしょ?


49 :名無し@沢村:03/11/09 16:32
>>48
わかった、わかった。
ポインタは変数と同じようなもんだよ。
だから簡単だよ、はいおしまい。

50 :仕様書無しさん:03/11/09 16:33
つまり「動きゃいい」と言うヤシの作ったプログラムは
動かないってことでいいか?

51 :名無し@沢村:03/11/09 16:35
>>50
わかった、わかった。
動きゃいいと言うヤシの作ったプログラムは
動かないよ。はいおしまい。

52 :仕様書無しさん:03/11/09 16:46
>>50
それはそれで皮肉だな

53 :C++忠 ◆IvraPLuPLU :03/11/09 17:40
>>34のご要望があったので答えておきますね。
そのまえに

>>37
100点満点中20点かな。まあ「平均的」だね。

引数渡しの種類は一般的には
Cには値渡し、ポインタ渡し
C++には加えて参照渡しがあると言われています。

しかし直交性のある理解の仕方をすれば、
引数渡しの方法は値渡しのみなのです。
型のシステムにポインタや参照があるのであって、それらは引数渡しの為に
特別に用意された機能ではないのです。
ポインタ型の値を渡す、
参照型の値を渡す、
それだけの事なのです。

つまり型のシステムと引数渡しのシステムは直交しています。
嘘だと思うならば、コンパイラ作成者になったつもりで考えてください。
あなたは引数渡しの為に「ポインタ渡し機能」や「参照渡し機能」のコードを書きますか?

54 :仕様書無しさん:03/11/09 18:05
>>53
先生、動画像を扱う場合の直交変換の方式はどれが優れているかおしえてください

55 :仕様書無しさん:03/11/09 18:12
それでは弁護側・・・ではなく
int *はint型へのポインタであってintへのポインタ型ではないから
int*と書くべきではないと主張する方、
反証をお願いします。

56 :仕様書無しさん:03/11/09 18:23
値を値として渡す、ポインタをポインタとして渡す、参照を参照として渡す
ためにわざわざ「ポインタ渡し機能」やら「参照渡し機能」など実装する必要は無いけどな


57 :仕様書無しさん:03/11/09 18:36
動けば良いんじゃね? 理論だけじゃ飯食えないし...>大多数の人々

58 :仕様書無しさん:03/11/09 18:44
>>50

59 :仕様書無しさん:03/11/09 19:05
糞銀行システムと同じじゃないよ。
「動けばいい」ってのは「動いていて、求められる結果を出している」から良いと言うこと。

客は結果が欲しいのであって理論とか言っても時間の無駄。
仕様設計はきっちりやるけどプログラミングの段階は実戦経験に基づいて
以下に早くバグのない枯れた手法を用いて納期に間に合わせるかでしょ?

俺だって情報理論かじったエセ○○だから、プログラム理論どうこう言いたいときもあるけど、
新人に教えるときには実践が一番身に付くのが早いと悟ったよ。

経験年数が無いんだから、理解できない奴に理論説いても無駄だってね。
みんながみんなプロ言講座受けてるわけじゃなし。


60 :仕様書無しさん:03/11/09 19:08
>>53
引数の実体は型が何であろうと値なんだ

と一言でいえば?

61 :仕様書無しさん:03/11/09 19:08
素朴に「ポインタって?」と悩む奴にどういえば一番良いか聞きたいのだが。

ここは落ちぶれた学会か場末の現場ですか?

62 :仕様書無しさん:03/11/09 19:12
>>53
お前、 call by value と call by reference の区別ついていないだろ。
「ポインタ渡し」なんて変な言葉使っているし・・・

値の渡し方の分類をするとすれば、
C は「値渡し」だけ。
C ++ はその上に「参照渡し」がある。
お前のいう「ポインタ渡し」はただの値渡しだ。
それと「参照渡し」は本質的に別物だ。

嘘だと思うならば、コンパイラ作成者になったつもりで考えてください(w

63 :仕様書無しさん:03/11/09 19:14
>>53
お前、 call by value と call by reference の区別ついていないだろ。
「ポインタ渡し」なんて変な言葉使っているし・・・

値の渡し方の分類をするとすれば、
C は「値渡し」だけ。
C ++ はその上に「参照渡し」がある。
お前のいう「ポインタ渡し」はただの値渡しだ。
それと「参照渡し」は本質的に別物だ。

嘘だと思うならば、コンパイラ作成者になったつもりで考えてください(w

64 :仕様書無しさん:03/11/09 19:16
>>62-63
そんなに必死にならんでも...

65 :仕様書無しさん:03/11/09 19:21
>>61
>ここは落ちぶれた学会か場末の現場ですか?

他のどこでもない、
ここは名にし負う「2ちゃんねる」です。
どこが 2ch らしくないですか?

66 :仕様書無しさん:03/11/09 19:25
>>59
それはもしかして「動けばいい」についての意見?

67 :仕様書無しさん:03/11/09 19:39
>>59
>「動けばいい」ってのは「動いていて、求められる結果を出している」から良いと言うこと。

それは本当に「動いて」いるのか?
明日走らせた途端、落ちたりしないか?

それを根底において保障してくれるのは何かといえば、
他でもない、言語の規格だ。
労働者が「労働基準法」に守られているのと同様に、
プログラマは「言語規格」に守られているという事を
常に念頭に置いておくべきだと思う。

計算機の理論を学ぶ事と、言語規格を学ぶ事を
同列に扱ってはいけない。

68 :名無し@沢村:03/11/09 19:39
pointer非常容易。
pointer難解語的人,因是偏差价低。明白。


69 :仕様書無しさん:03/11/09 19:40
>経験年数が無いんだから、理解できない奴に理論説いても無駄だってね。
同意。

70 :名無し@沢村:03/11/09 19:51
pointer非常容易。
pointer難解語的人,因是偏差价低。明白。

71 :仕様書無しさん:03/11/09 19:58
>>53
概念と実装を一緒にして考えているな。
全然問題を切り分けられて無いじゃん。

72 :名無し@沢村:03/11/09 20:11
pointer非常容易。
pointer難解語的人,因是偏差价低。明白。


73 :C++忠 ◆IvraPLuPLU :03/11/09 21:45
>>71
概念の話はしてません。実装の話をしています。
そもそも前スレ>902さん(http://pc.2ch.net/test/read.cgi/prog/1050835338/902)
# 型を表してるのはあくまでも「int」までと覚えよう。
# int a; // int型のaという変数
# int *a; // int型のaというポインタ
に対して、それよりも int* a;はintへのポインタ型のaという変数だと考えた方が
すっきりと収まるんじゃないですか?という意見と、その理由の一つとして出している話です。

そもそもここポインタに関するスレなので、こういう理由がなければスレ違いです。

あと>>63にはかける言葉も見つからないです。

74 :仕様書無しさん:03/11/09 22:57
コンパイラ(言語処理系)の実装ですか?
要求仕様の実装ですか?

どんな言語にも抜け道はあるし、なぜあるかというと、
言語設計思想だけではどうしても効率が落ちるから
仕方なしに実装して、それでアプリ実装を行うわけ。

だいたい C とか C++ とかある意味「不完全な言語」で
理論とか実装とかの話をしても無駄。

既存言語の揚げ足を取らないでせめて理想の仮想言語でも
用いて「ポインタとは...」とかかたって欲しいな。

新人にもわかりやすく。

75 :仕様書無しさん:03/11/09 23:00
>>73
言語仕様で考えるなら
その前スレ902の言い分の方が理にかなってる
int*型なんて考えるから
int* a,b; //何度もガイシュツだが
混乱するヤシが出て来るんだよ
実装の話などどうでもいい

76 :仕様書無しさん:03/11/09 23:03
言語は実装に依存するのかw

77 :仕様書無しさん:03/11/09 23:04
>>67
えぇ、自信を持って言えますよ。

「動いています」とね。
電源異常とかのハードウェアトラブル以外で
落ちたことはないし(ソフト検出不可能事象)、
その場合でもハードウェア側にWatchDog回路持たせて
ハードリセットしてますけどね。
ソフト実装と同時にハード実装の設計も行うんですよ。

24時間365日無停止稼働なんて当たり前の世界では
理論よりも実践ですからね。

非ANSIの世界でアセンブラとミックスドランゲージで
実装経験の一つ二つでも経験すればポインタなんて
自然に身に付くと思うんですけどねぇ〜

78 :ななし:03/11/09 23:04
新人君は、下がなぜ正常に動作しないのか分かればcall by valueは分かったも同然。

void func( char *p )
{
p = ( char * ) malloc( 1024 ) ;
}

main()
{
char *pointer ;

func( pointer ) ;

strcpy( pointer , "abcdefg" ) ;
printf( "%s\n" ,pointer ) ;
free( pointer ) ;

}


79 :仕様書無しさん:03/11/09 23:07
>>78
はぁ。わざわざんなもん貼らなくても。。。

80 :仕様書無しさん:03/11/09 23:13
>>77
一生懸命なのは分かるけどさ、ポインタの話でそこまで
持ち出してなんともない?

81 :仕様書無しさん:03/11/09 23:15
>>80
机上の理論を語るよりは「ポインタってそんなに難しいの?」と悩む香具師に
教え込む「一つの例となる現場の仕事」として言っただけだが?

それとも「動けばいい」で支えられている今の社会が不安か?(w

82 :ななし:03/11/09 23:18
抽象論だけ展開しても分からん奴は永遠に分からんままだよ。

83 :仕様書無しさん:03/11/09 23:25
入門書でポインタだけ浮いてるよな
関連性が無さ過ぎるんだよ
入門書の知識だけじゃポインタの使い道もないし

「だったら配列でいいじゃん」と思わすような記述するなよ

84 :仕様書無しさん:03/11/09 23:30
>>81
不安だね。「動けばいい」で支えられてる人は。

85 :仕様書無しさん:03/11/09 23:32
>>78
新人君じゃないけど、新人に説明するつもりで解答しマース。

関数参照によって値を取得する場合は、その変数のポインタを引数にする。
したがって、関数参照によってポインタを取得する場合には、
そのポインタのポインタを引数にしなければならない。

どーでしょか、教官。

86 :仕様書無しさん:03/11/09 23:38
俺も残念なんだが、今の産業界ではそれが当たり前なんだよ >>81
それを変えるには勉学として情報理論を教え込むこと、
もしくは教わってこなかった人間に現場で仕込むこと。

前者には時間があるが、後者には時間がない。
で、見張りつつ実践で教え込むしか方法がない。

情報理論で修士まで取って現場に入って感じた漏れの実感がこれだよ。

「現場には現場の理論がある」=「不具合無く動けば良し!」

っと、スレ違いなんであとは無しな>>ポインタの先生ドゾー

87 :仕様書無しさん:03/11/09 23:40
>>81 → >>84な。

88 :仕様書無しさん:03/11/09 23:42
>>86
修士さんですか。それがポインタになんか関係あるの?

89 :仕様書無しさん:03/11/09 23:43
ageてる奴の中に香ばしさを感じるのは漏れだけですか?

90 :ななし:03/11/09 23:45
つーかK&Rの表記もちょっと悪いかもしれないんだけど、覚えはじめの時に「ポインタ=配列」って頭に入れてしまうと
後で大変な目に遭いそうな感じだな。
最初にポインタと配列は全然違うものと理解した方が上達早そう。
いつまでたってもint *a;とint a[];の区別がつかなくて苦労している人を結構見たよ。

91 :仕様書無しさん:03/11/09 23:45
まさか修士まで取ってプログラマーなんてやってないでしょうね?

92 :仕様書無しさん:03/11/09 23:45
>>77
>自信を持って言えますよ。

お前、本当に >>67 の主張を理解したのか?
日本語読めるか?

規格に準拠しているかいないか確認する事を軽視していながら、
どっからその「自信」が沸いてくるんだか是非知りたいもんだ(w

93 :仕様書無しさん:03/11/09 23:49
>>86
冗談抜きでケンチャナヨーとか言ってないよな

94 :仕様書無しさん:03/11/09 23:51
スレ違いに気づいた修士のいるスレはここですか?

95 :仕様書無しさん:03/11/09 23:55
>>77
24時間365日無停止稼働なんて当たり前の世界では
ハードリセットなんて御法度で、確実に復旧出来るシステムを組んでます。
人命に関わらないシステムで良かったですね:-p

96 :仕様書無しさん:03/11/09 23:56
逆にいうと動かない奴が何言っても遠吠えではあるな

97 :ななし:03/11/09 23:57
ところで何でみんなsage進行してるの?

98 :仕様書無しさん:03/11/10 00:02
>>95
止まってしまったら「動けばいい」じゃなくなるじゃん

99 :仕様書無しさん:03/11/10 00:10
動けば良い、ではなくて、動くように作る!それが職人の世界。
頭でっかちはいらない。

100 :仕様書無しさん:03/11/10 00:19
>>98
リセットは停止じゃなくて再起動のような…

101 :仕様書無しさん:03/11/10 00:59
動けばよい、いやだめだ

おまいら動く以外に何をお望みですか?

102 :仕様書無しさん:03/11/10 01:03
目的と過程をまぜるな危険

103 :仕様書無しさん:03/11/10 01:40
なんつうか新人&凡人に動く以上のことを要求するのは酷だろ

104 :仕様書無しさん:03/11/10 01:41
プロクラマーに大切なことは、
1) 作ること
2) 動かすこと
3) 祈ること
の三つだけだ。

105 :仕様書無しさん:03/11/10 12:44
>>104
そして経営者はプログラマーに
よけいな事を考えさせずにそれだけやればよいと...

導く者である教師はまた違うんだろうね。

106 :仕様書無しさん:03/11/10 13:14
>>104
違う。究極のプログラマに大切なことは
・コミュニケーション (Communication)
・シンプルさ (Simplicity)
・フィードバック (Feedback)
・勇気 (Courage)

が必要だ

107 :仕様書無しさん:03/11/10 13:19
>>104
違う。究極のプログラマに大切なことは
・金(Money)
・時間 (Time)
・女 (Sex)
・狂気(Madness)

が必要だ


108 :仕様書無しさん:03/11/10 13:22
違う。究極のプログラマは

俺だ。

109 :仕様書無しさん:03/11/10 13:44
>>95
人命が関ってなくたって、
  「障害発生時にハードウェアからリセット」
なんて、莫迦のすることです。

110 :仕様書無しさん:03/11/10 13:58
プログラマに必要なのは下の5つだよ。

M:マルチスレッド
A:アーキテクト
N:ネットワーク
C:コミュニケーション
O:アウトプット

111 :仕様書無しさん:03/11/10 14:03
>>110
なにが言いたかったのかまでわかるのに1分かかった

112 :仕様書無しさん:03/11/10 16:29
アウトプットって、えらい無理矢理な(藁

113 :106:03/11/10 16:42
>>107-108
おいお前ら、本当に究極のプログラミング(XP)を知らないのか?


114 :仕様書無しさん:03/11/10 16:46
>>110
どうせなら
A: Association 提携, 交際, 親密
O : Optimism 楽天主義 (何事も悲観的にならずに。成功をかみ締めよう。)

115 :仕様書無しさん:03/11/10 16:52
>>113
XPは究極のプログラミングではない

116 :K仲川(^^)g:03/11/10 16:54
(−−)

117 :仕様書無しさん:03/11/10 16:59
XPを「究極のプログラミング」とか訳した馬鹿は誰だよ?
長瀬か?(w

118 :仕様書無しさん:03/11/10 17:11
>>112
何を言ってるんだ。
むしろアウトプットこそが最も重要だろう。
出すもの出さないと欲求不満になるからな。

119 :仕様書無しさん:03/11/10 17:48
XPは究極のプログラミングではない。
至高のプログラミングなのだ。

120 :仕様書無しさん:03/11/10 18:24
>>119 つまんね。
プログラミングの歴史は始まったばかりなのに、
もう「究極」やら「至高」が出るのか?

121 :仕様書無しさん:03/11/10 18:38
お前ら美味しんぼの影響受けすぎ

122 :仕様書無しさん:03/11/10 18:44
>>120
すでに100年以上の歴史がありますが

123 :仕様書無しさん:03/11/10 19:10
>>122
Charles Babbageを持ち出すか。
じゃあ逆に聞くが、プログラミングの歴史はいつ頃終わると思うんだ。

124 :仕様書無しさん:03/11/10 19:41
関係ないけど、Perlにポインタ(リファレンス)が実装されたの最近知った。

125 :仕様書無しさん:03/11/10 19:48
Management ability:管理能力
Artisan spilits:職人気質
Negotiation skil:交渉技術


126 :名無し@沢村:03/11/10 20:32
>>110
プログラマに必要なのは下の5つだよ。

A:アーキテクト
R:公開鍵暗号
Y:フーリエ変換
E:エンタグルメント純粋化
T:テレポーテーション


127 :仕様書無しさん:03/11/10 20:40
違うな

D代休
M目覚まし
E演技
Pパチンコ
Oおぱーい

128 :仕様書無しさん:03/11/10 21:13
USO800


129 :仕様書無しさん:03/11/14 00:58
全然ポインタの話にならないのは
ポインタなんて本当は簡単だからでファイナルアンサー?

130 :仕様書無しさん:03/11/14 01:12
<<128
ワラタ

131 :仕様書無しさん:03/11/14 01:19
>>130
いまだにレスポインタを理解できてないお前は
このスレの住人として尊敬に値する

132 :仕様書無しさん:03/11/14 01:36
ポインタのポインタが苦戦したね

133 :仕様書無しさん:03/11/14 01:42
ポインタ扱うのにイメージとかする漏れはだめ?

1次元配列
 ________________________________
/_____/_____/_____/_____/_____/|
|:_____|::_____|:_____|::_____|:_____|/

といった具合です


134 :仕様書無しさん:03/11/14 11:20
「二次元配列などない。」

って書いてあった日にゃあコイツ絶対2ちゃんねらーだと思ったね

>>133
漏れは主記憶全体をイメージしてるよ

135 :仕様書無しさん:03/11/14 17:51
char member[3][5] = { "aaaa", "bbbb", "cccc" };

member
----------
0 => "aaaa"
1 => "bbbb"
2 => "cccc"

member[1][1] == ( (*(member + 1)) + 1 ) == 'b'

char ** name [3];

?


136 :仕様書無しさん:03/11/14 17:52
member[1][1] == *( (*(member + 1)) + 1 ) == 'b'


137 :仕様書無しさん:03/11/14 18:17
何がわからないの?
==になる部分?

138 :仕様書無しさん:03/11/14 19:00
>>135
× member[1][1] == *( (*(member + 1)) + 1 ) == 'b'

○ member[1][1] == *( member + 5 * 1 + 1 ) == 'b'

139 :仕様書無しさん:03/11/14 19:36
member[1][1] == *( (member+1)) == 'b'
は間違い?

140 :仕様書無しさん:03/11/14 23:06
* (member + 5 * sizeof(char) + 1)


141 :仕様書無しさん:03/11/14 23:25
>>134
>漏れは主記憶全体をイメージしてるよ
オレも。
Cの前にアセンブラやってる人は、大体そうだね。

142 :仕様書無しさん:03/11/15 01:19
>>140
char は確実に1バイトなのでは?

143 :142:03/11/15 01:24
いや・・・それ以前にポインタ演算じゃん・・・

釣られた?

144 :仕様書無しさん:03/11/15 01:28
>>142
マジックナンバーにしない努力。
マジックナンバーより定数を使いましょうとまったく同じ事。

使い所は間違っている気がするが。

145 :オブジェクト指向促進運動:03/11/16 01:46
IT業界にアージャイル開発とデザインパターンを広めよう!

C言語を使ってかなり苦労したので
その苦労を最小限におさえるために
アージャイル開発、デザインパターンを
多くのプログラマに使って欲しいと思うことがある。

一種の挨拶みたいなものだね。
「なるべく挨拶を心がけましょう。」
「なるべき綺麗な字で書きましょう。」
のように

デザインパターンを使うこと、アージャイル開発することが
プログラマの習慣、常識になってほしい。

なんとか、デザインパターン文化、アージャイル開発文化を押し広げられたら・・・。

IT業界の将来はオブジェクト指向とアージャイル開発が握っています!

146 :C++忠◇IvraPLuPLU :03/11/22 18:09
C/C++のポインタには大きくわけて
・オブジェクト参照
・イテレータ
の2つの機能があり、この2つを組み合わせる事で配列に近い振る舞いをさせる事が可能です。
Javaの参照には後者の機能がありませんから
Javaの参照がC/C++のポインタと同等であるとは言えません。
しかしポインタの第一義としては前者の機能であり、
その点だけに着目すればJavaにポインタがあるという表現も
100%の間違いだとは言えません。
Javaの例外の名前であるNullPointerExceptionという名前から考えられるのは
James Goslingらにとってのポインタとはオブジェクト参照だったという事ではないでしょうか?

まったく同じ物でも別の角度から見ると全然別の物のように見えるのでしょうね。


147 :仕様書無しさん:03/11/23 12:45
>この2つを組み合わせる事で配列に近い振る舞いをさせる事が可能です。
逆だって


148 :仕様書無しさん:03/11/23 13:01
Referenceという単語は、Pointerより長くて母音の数が多い。

P[o][i]nt[e]r 3個。そのうち2個は繋がってる。
R[e]f[e]r[e]nc[e] 4個。しかも全部[e]。間違えてRef[a]renceとか使う馬鹿も多い。

Ass[o]c[i][a]t[i]v[e] [a]rr[a]ys ほど多すぎるとは言わないが、やはり多い。
よって、Pointerが採用されましたとさ。

149 :仕様書無しさん:03/11/23 13:33
referでいいじゃん。

150 :仕様書無しさん:03/11/23 13:52
いやrefまたはptrで。refはそれぞれのキーが近いので打ちやすいぞ!?

151 :C++忠 ◆IvraPLuPLU :03/11/23 17:53
>>147
本物のC++忠なんですけど、何が逆なんですか?
まさかC/C++には組み込みの配列などなく、
ポインタによって代用されていると思われているのですか?

152 :仕様書無しさん:03/11/23 21:06
Cにおいて配列とポインタは同じ概念(言語理論的には違うとしても)。
そのポインタ(=配列)を使っていろいろなことを実現しているのがC言語の特徴。

153 :仕様書無しさん:03/11/23 23:46
>>152
ネタですか。

154 :仕様書無しさん:03/11/24 00:30
>>153
ネタですか。

155 :922:03/11/24 00:41
ネタ切れですか?

156 :仕様書無しさん:03/11/24 00:41
はい、ネタです

157 :仕様書無しさん:03/11/24 01:10
はい、ネタです

158 :仕様書無しさん:03/11/24 09:47
はい、ネタ切れでした

159 :仕様書無しさん:03/11/24 10:34
↑深いネストからの脱出?

160 :仕様書無しさん:03/11/24 16:53
ラベル用 breakの事?

161 :仕様書無しさん:03/11/24 17:32
日本break工業

162 :仕様書無しさん:03/11/24 18:45
ラウンジ鑑定スレに時々出てくるね

163 :仕様書無しさん:03/11/29 01:37
>ここの人たちはvoid *に関数のポインタを入れてはいけないってことも知らんのでsky?

キャストが必要と言う答えは「入れてはいけない」理由にはなってないな。


164 :Kusakabe Yocchan:03/11/29 01:41
ここの人たちはvoidにエサを与えてはいけないってことも知らないんです

165 :仕様書無しさん:03/12/13 01:36
前スレの990- お前らは赤っ恥をかいてる。他人を笑う前に自分の愚かさを嘆こうね。

166 :仕様書無しさん:03/12/13 02:30
はいはい。>>922は天才!と>>1000もいってるし。

167 :仕様書無しさん:03/12/23 10:56
新人君は、下がなぜ正常に動作しないのか分かればcall by valueは分かったも同然。

void func( char *p )
{
p = ( char * ) malloc( 1024 ) ;
}

main()
{
char *pointer ;

func( pointer ) ;

strcpy( pointer , "abcdefg" ) ;
printf( "%s\n" ,pointer ) ;
free( pointer ) ;

}


168 :仕様書無しさん:03/12/23 11:17
>>167は、いい判定材料になる。
使わせてもらおう。THX


169 :仕様書無しさん:03/12/23 11:27
>>167
引数を上書きしても、呼び出し元の値は変らない。
(たとえそれがchar型のポインタであっても)


……メモリリーク怖い怖い。

170 :仕様書無しさん:03/12/23 12:28
>>167
で、
void func( char &p )
{
p = ( char * ) malloc( 1024 ) ;
}

*p ⇒ &pにしたらいいかい?


171 :170:03/12/23 12:34
訂正。
実際にコンパイラに通してみたら170では変なエラーがでる。

んで、以下のように変更。

func( pointer ) ; 
を 
func( &pointer ) ;
にしたらうまくいったぜよ。



172 :170:03/12/23 12:41
で、疑問が生じた。

mainの関数呼び出し側で アドレスを渡すのと
func( &pointer)
関数側でアドレスとして渡すのでは相違があるんだろうかと。
void func(char &p)

なんか見た目はfunc( &pointer)で記述しようが、
void func(char &p)で記述しようが同じのような気がするけど。


そういう仕様だから?


173 :仕様書無しさん:03/12/23 13:04
>>170-172
なんで C++ が出てくるのか判らんが、

>void func( char &p )
「p は char への参照」
>void func(char *p)
「p は char へのポインタ」

174 :173:03/12/23 13:07
あ、スマソ。
スレタイよく見てなかった。_| ̄|○i||i

175 :仕様書無しさん:03/12/23 15:17
>>170
つーか
void func( char *&p )
だろ


176 :仕様書無しさん:03/12/23 15:36
void func( char **p )

177 :170:03/12/23 15:42
173はどうしてC++と思ったんでしょうか?

CとC++では、違う?
確かに、コンパイラはBorlandのBCCですけど


178 :仕様書無しさん:03/12/23 16:23
>>177
最近の BCC は C (C++ ではなく) のコードで“参照”が使えるの?

179 :仕様書無しさん:03/12/23 17:36
>>178
参照なんて昔から使えるだろ。(とか逝ってみるテスト)

180 :仕様書無しさん:03/12/23 23:08
>>179
Cに規格上参照はねえずら。
BCCってC++切れたっけ?
個人的には切れても切らないで欲しいが…。
C++否定派の人だと切るんだよな…。
まずは better c としてでもいいから恐怖感を取り去って欲しいのにー:p

181 :仕様書無しさん:04/01/04 16:08
ポインタ関数ってjavaのインターフェースみたいなもんだろ?

182 :仕様書無しさん:04/01/04 18:13
p[i] と i[p] と *(p+i)
はなぜ同じになるのでしょうか?

大好きなお兄タン教えて

183 :仕様書無しさん:04/01/04 20:33
35才で以下のように書く人がいます。
この人にどうアドバイスすればよいのでしょうか?

int *hoge;

memset( hoge, 0x00, sizeof(hoge));

184 :仕様書無しさん:04/01/04 20:41
>>183
「ぶち殺すぞ、人間(ヒューマン)」

185 :仕様書無しさん:04/01/04 20:49
>>181
インターフェースではぬるぽは出ません。

186 :仕様書無しさん:04/01/04 21:01
ぬるぽって、まだ何も突っ込まれていない....処女のこと?

187 :仕様書無しさん:04/01/04 21:23
むしろおとk

188 :第弐案:04/01/04 21:36
>>183
「この…………ド低脳がッ!」

189 :仕様書無しさん:04/01/05 20:07
>>182
いかすw

190 :仕様書無しさん:04/01/05 21:17
>>183
「アァッハッハッハッハッハッハッハ・・・・・・・・・氏ね。」
>>186
1回値を入れた後に""文字列入れてみよう。

191 :仕様書無しさん:04/01/05 22:53
char *p = NULL;
p = ">>190";

別に何も。

192 :仕様書無しさん:04/01/10 01:59
>>182は釣りなのか本気なのか
本気だったらちっとはぐぐれ

>>183
ビーイング(否TECH)でも渡してやれ

193 :仕様書無しさん:04/01/12 09:34
これは音楽用のCDじゃないよ〜

194 :自称C++厨をクビにしよう運動:04/02/08 14:36
いまこそ、プログラマー革命を起こすときだ!

 〜 自称C++厨の化けの皮をはがせ!運動展開中! 〜 

大半のC++厨はインチキ詐欺師の卑怯者で
オブジェクト指向もしらなければデザインパターンも知らない悪いやつである。
大半のC++厨は汚いコードを書いてチームをわざと混乱させメンテナンスの手間を増大させる悪魔なのだ!
大半のC++厨は自己保守的で官僚的で革新性が無く
自分のスキルの程度をごまかすためにわざとソースコードを読みにくくしているのだ!

こんな卑怯者が許されるか!

ふたを開けてみればただのC言語しかできないとんでもない低脳である。

こんな悪魔のような給料泥棒なやつが金をもらっていることは絶対に許されるべきではない!
即刻減給するかクビにしてやるべきである!

自称C++厨の化けの皮をはがせ! 自称C++厨の化けの皮をはがせ!
自称C++厨の化けの皮をはがせ! 自称C++厨の化けの皮をはがせ!
自称C++厨の化けの皮をはがせ! 自称C++厨の化けの皮をはがせ!

195 :自称C++厨をクビにせよう運動:04/02/09 10:13
いまこそ、プログラマ革命を起こすときだ!
(亜ぼーんする愚か者には核ミサイル無量大数本分の死を!)

 〜 自称C++厨の化けの皮をはがせ!運動展開中! 〜 
(本当は自称C++厨なんてたいしたことがない、上辺だけなのだ! 真実を見よ!)
大半のC++厨はインチキ詐欺師の卑怯者!
オブジェクト指向も知らなければデザインパターンも知らない悪い奴である。
しかも悪名高いウォータフォール信者と来た! 許せん! 今こそ正義の一撃を!
大半のC++厨は汚いコードを書いてチームをわざと混乱させメンテナンスの手間を増大させる悪魔なのだ!
大半のC++厨は自己保守的で官僚的で革新性が無く
自分のスキルの程度を誤魔化すためにわざとソースコードを読みにくくしているのだ!
(こいつらはわざと読みにくくすれば他人が解読するのにに手間がかかるので
凄いと思いこまれると勘違いしている馬鹿どもなのだ)

こんな卑怯者が許されるか!

蓋を開けてみればただのC言語しかできないとんでもない低脳である。

こんな悪魔のような給料泥棒なやつが金をもらっていることは絶対に許されるべきではない!
即刻減給するかクビにしてやるべきである!

このような卑怯なC++厨の行為は宣戦布告と見なさなければならない行為であり
大義名分を持って即刻解雇すべきである!

自称C++厨の化けの皮をはがせ! 自称C++厨の化けの皮をはがせ!
自称C++厨の化けの皮をはがせ! 自称C++厨の化けの皮をはがせ!
自称C++厨の化けの皮をはがせ! 自称C++厨の化けの皮をはがせ!


正義は勝つ!

196 :183:04/02/15 20:30

char aa[10];
char bb[10];
char cc[10];

main{

func_1(aa);
}
func_1(char *a){

if( xx == 1){
a= bb;
}
if( xx == 2){
a = cc;
}

strcpy( aa, a);
}

197 :183:04/02/15 20:32
こんなのもあります。

memcpy( aa, bb, sizeof( bb));

この方は、C言語の仕事しか
したことがないそうです。

198 :仕様書無しさん:04/02/15 23:03
183は痛々しいネタを作るのに必死

199 :仕様書無しさん:04/02/15 23:11
>>183
35才でc言語onlyなのか。
そいつが今まで書いてきた多量のコードをメンテする人たちに合掌。

200 :仕様書無しさん:04/02/23 02:18
>>196
つか、(ものによっては)まったく問題のないコードだが?

201 :183:04/02/25 21:28
>>198 ネタをまた考えました

char dd[10];

int sss(){

if( dd == NULL){

rtn = ERROE;
return(rtn);
}
}


202 :183:04/02/25 21:31
この方は、昼飯後は、会社でうんこをかならず
するのですが、その時間を書いておきます。

17 14:45-15:01
18 14:08-14:18
19 16:08-16:25
24 14:17-14:35
25 12:52-13:02

203 :仕様書無しさん:04/02/25 21:38
>>202
即刻氏ね。キモイ。

204 :ブッシュ大統領:04/03/15 11:05
三大悪の枢軸国の紹介
 C++帝國(北朝鮮) ← C++厨代表の正体は、何と! 金正日だった!
 VB帝國(イラン) ← VB厨代表はイランに潜伏していいた!
 Perl帝國(イラク) ← Perl厨代表フセインがついに逮捕された!

205 :仕様書無しさん:04/03/17 19:40





 私は正義の味方。









 私は悪のC言語厨を滅ぼすために生まれた。  








 私はC++厨の仮面を被った悪のC言語厨を滅ぼすためならいかなる手段をも厭わない!

206 :仕様書無しさん:04/03/17 20:56
>>204
バカチョンにC++なんてでき(ry

207 :仕様書無しさん:04/03/18 23:05
>>197
>memcpy( aa, bb, sizeof( bb));

ツボがようわからんのだが、、、
こう言いたいの?
char *aa;
char *bb;
     ・
     ・
  memcpy( aa, bb, sizeof(aa) );
それとも、
char aa[ARRY_MAX];
char bb[ARRY_MAX];
     ・
     ・
  memcpy( aa, bb, sizeof(aa) );

 前者と後者ではアポ〜ンからドノーマルの違いがあるぞ。

208 :仕様書無しさん:04/03/21 13:06
このスレまだやってたんか・・・

209 :仕様書無しさん:04/03/31 11:44
C++はドカタ言語の最高峰

210 :VBホブゴブリン ◆vb/Vb/gcNE :04/03/31 11:53
(@_@) ムズカC

211 :仕様書無しさん:04/03/31 18:15
C++ドカタの皆さん、2003年度はどんな年でしたか?
来年もこの調子で食べていけると思いますか?

212 :仕様書無しさん:04/03/31 23:56
ポインタがわからん奴はほかにもいろいろ変な勘違いしてるんだろうなぁ。

213 :仕様書無しさん:04/04/01 10:40
ポインタを覚えたくらいで必死になるドカタC厨

214 :仕様書無しさん:04/04/01 18:44
ポインタって他言語からCに移行した人が躓くんじゃないのかな?
オイラは最初がCなんでわりとすんなり使えるようになった。
むしろ他言語でポインタ使えないのが嫌でしょうがない。

215 :hoge ◆9XKoM6BN1w :04/04/01 19:36
自分はポインタで苦労した覚えがありません。
>>214のように、Cから始めたということもあるかもしれません。

ただ、>>78は分からなかった。

216 :VBホブゴブリン ◆vb/Vb/gcNE :04/04/01 19:41
>>214
>むしろ他言語でポインタ使えないのが嫌でしょうがない。
(・・) 使エルト 便利ナノカー … ナ?

217 :仕様書無しさん:04/04/01 19:42
>>215
おいおい大丈夫かよ。

218 :仕様書無しさん:04/04/01 19:43
理解できたつもりなのか。。。。

219 :仕様書無しさん:04/04/01 20:49
びっくりした。
>>78を見てなぜ動くのかを考えてしまった。

220 :仕様書無しさん:04/04/01 21:29
え、>>78は動かないよね。
func(char**)じゃないとダメなんだよね。
新人のとき構造体の初期化関数がこのインターフェイス[init(struct**)]
になっていることにひどくビックリした。

>>216
C以外でポインタ使えなくて嫌だなって思うのは、
ポインタで繋いでいくデータ構造作れないこと。
↓こんなやつね。

typedef struct {
 ・・・・
}STR_A;

typedef struct {
 STR_A *a;
}STR_B;

221 :仕様書無しさん:04/04/01 23:01
理解できるできないの問題ではなく、
乗算記号であるはずの「*」を、全く関係のない
ポインタに流用する、そのいいかげんさが許せない。
設計した変態野郎は氏んでくれ。

222 :typedef使用禁止令発動:04/04/01 23:38
>>220
typedefは素場下ティコードを量産するので使用禁止。
可読性向上のために好き勝手にtypedefを定めるのは禁止。



223 :仕様書無しさん:04/04/02 01:04
スレとはあまり関係ないんだけどさぁ、今度新人教育するんだけど
ポインタ教えた後ってなにやらせればいい?

1.malloc()/free()
2.別関数への参照渡し
3.struct
4.JAVA
5.VB

教えて(未来の)デスマ要員さんたち。

224 :仕様書無しさん:04/04/02 02:26
>>221
まあその過去の失敗があったからこそ、現在のそういう感覚が生まれている。
カンベン汁。

225 :仕様書無しさん:04/04/02 14:31
>>221
単項演算子 "&" と二項演算子 "&" モナー。
"," に至っちゃ演算子とそうでないのがあるし。

226 :仕様書無しさん:04/04/02 18:57
ポインタ型の宣言の記述と演算子としての*も混乱の元だろうな。
char * p;
char ch = *p;

227 :仕様書無しさん:04/04/02 19:21
そんなことは殆どやらないと思うが

228 :名無し@沢村:04/04/02 19:28
ポインタが理解できないおまいらよ、どんなに難しいことも、幼稚園児でも理解できる要素に分解できるらしいよ。
ポインタが理解できないなら、理解できる要素に分解すればいいんだよ。
ただ、ポインタって、それ以上あまり分解できそうにないけどね…
するとポインタ自体が幼稚園児でも理解できる要素なのかも知れないね。
それを理解できないおまいらって…

229 :オブジェクト指向促進運動:04/04/02 19:38
>>223
> スレとはあまり関係ないんだけどさぁ、今度新人教育するんだけど
> ポインタ教えた後ってなにやらせればいい?
>
> 1.malloc()/free()
> 2.別関数への参照渡し
> 3.struct
> 4.JAVA
> 5.VB

重複する部分がありどうもおかしい選択肢だ。
4には1,2,3相当がすべて含まれており5には2,3相当が含まれている。
structを教えるならclassを教えてやれ。
malloc()/free()を教えるならnew ,delete, java.lang.ref.Referenceを教えてやれ。
参照渡しなどObject#clone()などを持つJavaで説明した方習得速度が格段に速い。



230 :仕様書無しさん:04/04/02 19:48
>>228
俺、沢村という存在が理解できないんだが、
誰か分解してくれないかな?


231 :仕様書無しさん:04/04/02 21:21
彼は量子力学専攻博士課程を卒業したと豪語しているので
自分から素粒子分解してくれます。


232 :仕様書無しさん:04/04/02 23:43
>>229
オイラの経験からしてJAVAやるとポインタ全部忘れる(&とか*とか)。
理解ができない、というより
英語で「Don't〜」とか「You aren't〜」で話しかけられた時、すぐに答えられないような
もどかしい感じがポインタにはある。参照渡しにはそんなのがない。
You aren't handsome!(おまえってブサだなw)
って言われてるのについ
No!No!(あぁ、その通り!)
って言ってしまうような感じ。

233 :仕様書無しさん:04/04/03 00:15
Yes, No 考えずに You too. と答えられるようになること。

234 :仕様書無しさん:04/04/03 01:47
>>232
それはただ、C言語に触れた期間が短かったか、C言語を理解できていないだけ。
そんなポインタの基礎を忘れるわけがない。
メモリ上のイメージができてれば、何も難しいことはない。
x86系CPUなら、リトルエンディアンで動作することを理解してればグーだろ。
こういった基礎を叩き込んでおけば、ポインタを忘れるなんてことはないと思うけど。
232は、この辺の基礎を自分なりに頭の中でイメージが出来上がってないだけだと思うので、後は頑張れ。
とりあえず、ガーベジコレクションのぬるま湯ばかりに浸ってないように。

235 :仕様書無しさん:04/04/03 02:22
>>234
ほう、そうなのか。ならやってみるよ。
>とりあえず、ガーベジコレクションのぬるま湯ばかりに浸ってないように
だから、オイラはポインタ習った後のJAVAはオススメしないと言ってるんだが・・・・

236 :仕様書無しさん:04/04/03 02:33
で、なんで忘れるかってと234の言う通りちゃんと覚えていない
というのもあるかもしれないが、
とにかくJAVAには&と*が出てこない。
だからこの記号の意味を忘れていまうんだな。
それを英語に例えるとああなる。

237 :仕様書無しさん:04/04/03 13:54
エンディアンなんか忘れても

int x = 0x12345678;
char *p;
p = (char *)&x;
for( unsigned i = sizeof(int)/sizeof(char); i > 0; i-- )
fprintf(stderr, "%x ", *p++ );

これでしまい。大した知識を持ち合わせてないくせにえらそうにスンナよお前。

238 :仕様書無しさん:04/04/03 14:00
One little Two little 〜♪

239 :仕様書無しさん:04/04/03 15:04
CはOSの記述用に作られた言語で、
ポインタはそのために必要な機能。
アプリ開発レベルのイパーン人には理解できなくて当然。
悩んでないでさっさと自分に合ったレベルの言語に変えるのが吉。

240 :仕様書無しさん:04/04/03 15:33
>>239
CのポインタはOSに必要とかいう意味で難しいわけじゃないだろ
他の言語のポインタがあんなに簡単な理由にならん

241 :仕様書無しさん:04/04/03 17:19
C/C++ばっかやってる漏れとしてはポインタないと滅茶苦茶困る
ポインタみたいなのがない言語って引数とかどーなってんだ?値渡ししかできないわけじゃあるまい

242 :仕様書無しさん:04/04/03 20:13
>>241
それがJAVAのすごいところでもありPGを無能化させるところでもあるんだよ。
値渡しできるものは最初っから決まっててしかも限られている。それを参照渡しにしたければ
インスタンスにすればいい。それ以外は最初っから参照渡し。
これに慣れるとほんっとCとか難しく感じるよ・・・・

243 :仕様書無しさん:04/04/03 20:23
続き
そんなわけでJAVAに慣れると参照渡しなのか値渡しなのかは
ルールがあるので、わざわざ&をつけたり*をつけたりする必要がない。
だからしばらくCから遠ざかってJAVAやってるとCのことはすっかり忘れて
&や*をいつつけるんだっけ?となる。
それがYes,Noの言い間違いに似ている気がするのはオイラだけ?

244 :仕様書無しさん:04/04/03 21:22
>>241
おいおい、Javaのオブジェクトはすべて参照渡しだぞ。
int, long, doubleなどのプリミティブ型を参照で渡したい場合はラップクラスで渡す。

245 :仕様書無しさん:04/04/03 21:24
>>242
無能化は余計。オブジェクト指向をしっかりと学ぶすべを身につけ
厳しいコンパイラのエラーチェックが、C/C++プログラマよりも
バグを大量に出さない有能なプログラマに育てる。

246 :仕様書無しさん:04/04/03 22:47
>>245
がんばってみるよ。

247 :仕様書無しさん:04/04/03 23:15
>>240
>CのポインタはOSに必要とかいう意味で難しいわけじゃないだろ
OSに必要なのではなくCPUに必要だと思う。

248 :仕様書無しさん:04/04/04 05:08
Cのボインはプルグラマのためにあるんとちゃうんやで〜♪
OSのためにあるんやで〜♪

と、非常にうろ覚えなネタで書いてみた。

249 :仕様書無しさん:04/04/04 06:01
ん?Cのポインタってアドレス以上の意味が含まれててしかも
記述に一貫性がないって所がダメなんだろ?
そんな事だからアセンブラのほうが簡単だなんて
高級言語(asmと比べて)として恥ずかしい評価を受けるんだよ

250 :仕様書無しさん:04/04/04 11:04
cが高級言語?
そう教える奴は多いのは知っているが

251 :仕様書無しさん:04/04/04 13:02
マシン語<汗<C<C++<JAVA<VB<PerlやらRubyやら<JavaScript<HTML<ツクール系ツールの言語 低級言語← →高級言語

252 :仕様書無しさん:04/04/04 13:08
>251
> ツクール系ツールの言語
今年七月に発売されるRPGツクールXPではRubyが使えるそうですよ。


http://www.enterbrain.co.jp/digifami/products/rpgxp/shinkinou.html

253 :仕様書無しさん:04/04/04 13:45
>>252 ツクールイラネ。 個人的に吉里吉里ってゲームツールの TJSが好き、とゆうか漏れを こっちの世界に引っ張りこんだ張本人。 作者曰くJAVAとJavaScriptを足して3で割った感じ。

254 :仕様書無しさん:04/04/04 13:47
>>247

247 名前:仕様書無しさん[sage] 投稿日:04/04/03 23:15
>>240
>CのポインタはOSに必要とかいう意味で難しいわけじゃないだろ
OSに必要なのではなくCPUに必要だと思う。


OSに必要なのではなく C P U に必要だと思う。




    C   P   U  に 必 要 だ と 思 う


255 :仕様書無しさん:04/04/04 14:03
>>254
漏れはポインタはCPUがメモリにアクセスする時の命令を
一般化したものだと思ってるんだが違うのか?

256 :仕様書無しさん:04/04/04 14:58
>>255
おまいの話は
「サランラップはオープン調理する時の手順を一般化したものだろ?」
と同等ぐらいに意味不明。


257 :仕様書無しさん:04/04/04 15:21
>>256
じゃ、おまいの言うところのポインタって何?

258 :仕様書無しさん:04/04/04 15:22
CPUに必要なのはNANDロジックのみだな

259 :仕様書無しさん:04/04/04 15:29
>>258
NAND のロジックでどうやってメモリにアクセスするの?

260 :仕様書無しさん:04/04/04 16:59
>>259
メモリインターフェースだってNAND素子だけで回路組めるし、
メモリ自体をNANDだけで作ることも可

261 :仕様書無しさん:04/04/04 17:27
NANDでなんで情報が保持できんのさ?

262 :仕様書無しさん:04/04/04 17:36
JAVAは値渡ししかないんだが

263 :仕様書無しさん:04/04/04 17:47
>>261
NANDでラッチかフリップフロップ組めばいいだろ

264 :仕様書無しさん:04/04/04 17:48
>>262
どこのJAVAよ?

265 :仕様書無しさん:04/04/04 17:56
>>260
おまいの頭でくめるもんなら組んでみろ。


266 :仕様書無しさん:04/04/04 18:03
>>264
Javaのオブジェクトは厳密には参照渡しではなく参照の値渡し

267 :仕様書無しさん:04/04/04 18:05
>>260の情報源は
http://www.kab-studio.biz/Programing/Codian/Pointer/01.html
か?

268 :仕様書無しさん:04/04/04 18:14
>>261
NANDが2個あれば情報は保持できます。
はい、最も基本的なRSフリップフロップ
http://atug2.hp.infoseek.co.jp/jx/A/4/4_1.html

>>265
NANDベースのマクロセル使って実際にCPU組んでましたが何か?
あ、正確に言うとDSPだけど似たようなもんでしょ

269 :仕様書無しさん:04/04/04 18:17
>>267
ハハ、RS-FFに関して誰でも分かるように書かれてますねそこ。

270 :新入社員:04/04/04 18:18
>>268
ありがとう。
しかし、フリップフロップってよくわからないんだよね。
最初の一回目でSに1、Rに0が来た場合
S側のNANDには1となにが入ることになるの?

271 :仕様書無しさん:04/04/04 18:21
>>268
DSPすっか。製品は成功しますたか。

272 :仕様書無しさん:04/04/04 18:25
>>270
R側の片方の入力が0って事はもう片方は1でも0でも出力が1。
つまりS側のもう1方の入力は1になる。

>>271
「もの」としては完成したけど・・・失敗企画だったな


273 :仕様書無しさん:04/04/04 18:30
>>272
>「もの」としては完成したけど・・・失敗企画だったな
完成しただけ凄いと思います。俺なら途中で発狂します。

274 :仕様書無しさん:04/04/04 20:04

>>262はJavaのことを良く分かっていないアフォ

275 :仕様書無しさん:04/04/04 21:11
ポインタはもはや生活必需品だ。俺なんかポインタが無いとトイレでケツも拭けん。

276 :仕様書無しさん:04/04/04 23:02
>>274
もまえのほうがわかってない。
Javaには値渡ししかないぞ

277 :仕様書無しさん:04/04/04 23:21
まぁ、どの次元で言語を捕らえるかで
引数なんて、値渡しにも参照渡しにも見えるからねぇ

不毛だな。

278 :仕様書無しさん:04/04/04 23:59
>>277
JAVAだと仕様で決まってるから、見える見えないの問題ではないんだが・・・。

279 :仕様書無しさん:04/04/05 00:54
なんで物理的な話とCPUレベルでの論理的な話と
OSレベルでの論理的な話と言語の実装レベルでの論理的な話と
言語の文法レベルでの論理的な話が交錯してるんですか?

280 :仕様書無しさん:04/04/05 01:24
すべてが上手く連携して正しく動作するから。

281 :仕様書無しさん:04/04/05 08:26
>>254
君、結構楽しい奴だな。
確かに言ってることは正しいよ。
てか、ここアセンブラというかCPUの基本構成わかってない奴多すぎるな。
C極めたければどんなCPUもいいからアセンブラはかけるようになっとけよ。

282 :仕様書無しさん:04/04/05 12:32
>>279

>>275の発言はどのレベルの話だ?(藁

283 :仕様書無しさん:04/04/05 13:31
>>250
学術上の分類は高級言語だよ
学がないってのはやだねってたらやだね

284 :仕様書無しさん:04/04/05 13:44
>>293
分類が高級言語だなんてことは誰でも知っている。
話題になっているのは
「cは高級言語だと思うかどうか」
なんだが。

285 :仕様書無しさん:04/04/05 13:58
>>284
お前、これ嫁。
そして、自分の発言の恥ずかしさをしっかり噛みしめろ。

http://bookweb2.kinokuniya.co.jp/htm/4061590731.html


286 :仕様書無しさん:04/04/05 14:17
>>285
お前、
プログラミング言語とコミュニケーション言語を混同(同一視)してるだろ

287 :仕様書無しさん:04/04/05 16:35
分類が果物であることは誰でも知っている
話題になっているのは
「トマトは果物だと思うかどうか」
なんだが

288 :仕様書無しさん:04/04/05 16:53
分類が飲食店だなんてことは誰でも知っている。
話題になっているのは
「ピンサロは飲食店だと思うかどうか」
なんだが。

289 :仕様書無しさん:04/04/05 18:42
こういうスレには参加しないのが冴えたやり方

290 :仕様書無しさん:04/04/05 20:44
>>287
難しいのはスイカ。
あれはほんとは野菜なのに果物であると思ってる椰子多数。
もはや野菜と果物から再定義しなおさなければならない。

291 :仕様書無しさん:04/04/05 20:48
>>287
マジレスするとトマトは果菜

292 :仕様書無しさん:04/04/05 21:26
>>290
省庁によって分類が違うだけなんだがw
もうちょっと勉強してこい

293 :仕様書無しさん:04/04/05 21:44
ショウユかけても(゜д゜)ウマー なのが野菜、(ノ-_-)ノ ~┻━┻なのが果物

294 :仕様書無しさん:04/04/05 21:47
>>292
象徴の言うことなんか汁かよ。
つかマ板にあるまじき非理論的なレスだな。
農学的には蔓になってるスイカをどうしようかって問題。
農作物研究家の間では野菜と定義したい者多数。

295 :仕様書無しさん:04/04/05 22:39
ここでスイカが果物かといった問題を議論するのはおかしい
ここでするべきは果物はスイカかどうかなのだ

296 :仕様書無しさん:04/04/05 22:53
スイカ>メロン>桃>>>>>>>果物

297 :仕様書無しさん:04/04/06 11:35
その植物が多年草の場合→果物
一年草の場合→野菜
こうするとスッゲーすっきり分類できるし、あまり間違った答えは出ないぞ。


298 :仕様書無しさん:04/04/06 11:39
>>297
それは分類じゃなくて覚え方のコツ

299 :仕様書無しさん:04/04/06 19:54
ポインタについて、読んでおいたほうがいい書籍ってありますか?

300 :仕様書無しさん:04/04/06 19:56
>>299
http://www.amazon.co.jp/exec/obidos/ASIN/4774111422/

301 :仕様書無しさん:04/04/06 22:10
>>266みたいな腐れ詭弁家って
どこの会社にもいるよな。
そういう奴ほど使えねえしな。

302 :仕様書無しさん:04/04/07 01:34
>>300
>なぜCのポインタはこれほどまでに難しいといわれてしまうのか―
>その理由は、Cの宣言まわりの混乱した文法と
>ポインタと配列の間の妙な交換性にあった。

ああ・・・まさにこれ!
俺がポインタで挫折したのはこれなんだよ。
真面目で実直な人間は、このいい加減さを許せなくて
先に進めなくなるんだよ。

303 :仕様書無しさん:04/04/07 03:17
>302
(´・∀・`)ヘー

304 :仕様書無しさん:04/04/07 13:33
>>300
ありがとうございます。
読んでみます。


305 :仕様書無しさん:04/04/07 14:37
望洋氏が書いた「秘伝」はよくないの?


306 :仕様書無しさん:04/04/07 20:06
>>266
あぁ、そゆことか。
だからCとかよりしっくりくるんだね。
ま、でも参照の値渡しは値渡しとは違うから
それははっきり分けないと・・・。

307 :仕様書無しさん:04/04/08 11:54
古い FORTRAN で (F66 頃?)

  CALL CHANGE(1)
  WRITE (6, 100) 1+1
100 FORMAT(1H0,2X,I5)
  STOP
  END

  SUBROUTINE CHANGE(IARG)
  IARG = 2
  RETURN
  END

とか書くと、1+1 の結果が 4 とかになって
「アドレスでしか渡せないってのも考えもんだよなあ」
と感じたことを思い出した。

308 :仕様書無しさん:04/04/28 22:44
http://page4.auctions.yahoo.co.jp/jp/auction/d47227135

69 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)