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
このスレまだやってたんか・・・

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

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

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