ポインタを上手に例えてみよう
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG0002デフォルトの名無しさん
NGNG初 て
め て
て み
駄 わ て
ス か
レ る
か
圖 な
Λ_Λ
( ´∀`)
( )
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNGじじいと共に
投げ捨てろ!
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNGイテレータは
違うのよ
おじいさん
00071
NGNG会員番号1番の人が解らず沈没。
しかも配列の説明にしかならない事になって鬱。
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG新しい単語教えるときは繰り返しが大事だから毎度
「ポインタ、メモリの中の座標の事ね」を連呼。
0011デフォルトの名無しさん
NGNGような便利な本は無いのかえ?
0012デフォルトの名無しさん
NGNG新人が優秀なら・・・どうせかってに自分で理解する
新人がアホなら・・・どうせ数年後に実務で苦労するまで理解しない
0013デフォルトの名無しさん
NGNGギャラいくらくらい貰えますか?
と聞いてみるテスト
0014デフォルトの名無しさん
NGNG「ぽいんだなぁ」
0015デフォルトの名無しさん
NGNGこんなのが面白く感じる自分に鬱。
moudamepointer
0016デフォルトの名無しさん
NGNG銀の弾丸は存在しない(w
0017デフォルトの名無しさん
NGNG単純にメモリへのアドレスだろ。どこが難しいんだ?と
小一時間問い詰めたい。
0018デフォルトの名無しさん
NGNG変数とメモリの関係
0019デフォルトの名無しさん
NGNG禿げ銅。
ポインタがどうたらこうたら言う奴にロクなのはいない。
うざいだけ。めざわり。息してなくて吉。
こういうことにこだわってみせるのって、文系プルグラマが多いな。
0020デフォルトの名無しさん
NGNG俺の後輩がまさにそう。
0021デフォルトの名無しさん
NGNG整数の配列へのポインタを返す関数へのポインタをメンバに持つ構造体、とか。、
0022デフォルトの名無しさん
NGNGゼンゼン難しくないぞ。
配列へのポインタって言い方するからややこしくなるんじゃないか。
正確には「配列の先頭要素へのポインタ」だから、普通の整数ポインタと同じだよ。
0023デフォルトの名無しさん
NGNG配列へのポインタはちゃんとある。
配列の先頭要素へのポインタとは別物だ。
実行してみろ。
int main()
{
int (*p10)[10];
int *p;
int buf[10];
p = buf;
p10 = &buf;
printf( "%d,%p,%d,%p,%d,%p",sizeof(*p10), p10, sizeof(*p), p, sizeof(buf[0]),buf );
}
0024デフォルトの名無しさん
NGNG以外はポインタに成り下がるとか。今では当たり前のように分かってても
初学者に易しいとは思えないな。
0025デフォルトの名無しさん
NGNGそういえば変数を「箱」って教えてた大学あったなぁ。
0026デフォルトの名無しさん
NGNGああ、あの時代遅れの概念ね。
0027デフォルトの名無しさん
NGNGコンピュータはいくつもの入れ物を持っています。
これらの入れ物はあらかじめ入れられるものが決まっています。(最初に宣言します)
入れ物には単一の入れ物や複数並んだ入れ物、別の種類の入れ物が集まった入れ物などがあります。
:
:
アホかぁ!ヽ(`Д´)ノ
0028デフォルトの名無しさん
NGNGなんで歳よりは偉そうに教えてんだかわかんない。
0029デフォルトの名無しさん
NGNG中学高校で基礎を勉強するかはおいといて…
年寄りは何においても偉そうだよ。
0030デフォルトの名無しさん
NGNGたいして難しくはないが、、こういうコードは書くなよ。
ちなみに、C++でやれば、ぜんぜんポインタを使わんですみそうだ。
0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNGWindowsのショートカットファイルや
インターネットのリンクと同じ。
そして、リンク先の種類(http,ftp,gopher,file...)と
どこを示すかという情報だけを持っている。
リンク切れが赤しいたけ発生の原因。
以上!!
003418
NGNG0035デフォルトの名無しさん
NGNGhoge foo(void);
↑の関数をtypedefしたやつを使わないで書く方法どういうのでしたっけ。
最近、どこかのスレで見た気がするんですが忘れちゃいました。
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNGhoge foo;
0038
NGNG> そういえば変数を「箱」って教えてた大学あったなぁ。
それ、学校だけじゃない。企業研修(プログラミング初級編)でも。
中卒程度の数学の知識と理解があれば、こんな譬えは要らないはずなんだけどなあ・・・。
0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNGすこく分かりやすい説明だと思います。
0041デフォルトの名無しさん
NGNGhoge foo(void);
関数ポインタを返す関数なんですが、この関数のプロトタイプを
hogeをtypedefで定義せずに書く方法です。
自分で書くときはtypedefしますけどちょっと気になったんで。
004241
NGNG激しくどうでもよくなってきたのでやっぱ無視してください。
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNG単に数学で言う変数と同じですよ的な説明だと、aliasと混乱するかもしれないし。
なじぇ?
0045デフォルトの名無しさん
NGNG気付いてない人もときどき見かける
0046デフォルトの名無しさん
NGNGC/C++なら単に「ポインタ=アドレス」でいいんじゃないの。
漏れは一時期「ポインタ=参照だ!」的な思想にかぶれていたけど、
ポインタに対する演算やらキャストやらを説明するには、やっぱりアドレスとして
説明するのが一番分かりが早い。
0047デフォルトの名無しさん
NGNG「自分では使いこなせないが、意味は理解できた」というところまでは到達できる。
後は使えるようになるまでひたすら練習問題解くべし。
そういやポインタだけで本一冊書いた香具師いたなあ。。。(嘆息)
0048デフォルトの名無しさん
NGNGしかし、「ポインタがわからない」って何だろうと思ってたけど、
>>41や>>43に敵意はないけど、関数ポインタを返す関数のプロトタイプ
とかが難しいって話なの。そんなのtypedefでいいじゃん。
そんなんで悩んでるんなら、人生の浪費だよ。
そんなひまあったら、コード書けや。
0049デフォルトの名無しさん
NGNG> とかが難しいって話なの。
いつからそんな話しになったの?
0050デフォルトの名無しさん
NGNGアドレス島に埋まっている宝のありかをバッテンでしめした地図
それがポインタなのぢゃ。
って私は覚えました。
0051デフォルトの名無しさん
NGNGみんなポインタは難しいとか色々吹き込むから、そう思いこんでしまうんじゃ
0052デフォルトの名無しさん
NGNGt++;
ではなく
t += sizeof( T );
であれば、初学者にとっては、
より理解しやすくなったのではなかろうか。
0053デフォルトの名無しさん
NGNGってどっかのサイトで言ってた
0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNGおをっ!名言臭い!
---- 以下、揚げ足取り ------
指をインクリメントすると、次の月を指すわけですな。
0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNG005853
NGNGそのサイト ここですた
ttp://www.mashimo.com/c4.html
ttp://www.mashimo.com/pointer.html
0059デフォルトの名無しさん
NGNGそれはもしかしてG評のM氏の本でつか?欝だ…
0061デフォルトの名無しさん
NGNG(ある型のデータを持てる)変数、
の、場所をあらわすデータ(=アドレス?)、
を、持てる変数(=ポインタ)。
とかだよね。
「何らかの犬(=データ)、
を、飼っている家(=変数)、
の、住所(=アドレス)、
を、書く欄(=ポインタ)」
で、どうだ!
0062デフォルトの名無しさん
NGNG「犬へのポインタ」あるいは
「犬型変数へのポインタ」
0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNG(ある型のデータを持てる)変数、
の、場所をあらわすデータ(=ポインタ?)、
を、持てる変数(=ポインタ変数?)。
とかかもしれないわけ?
0066Lisper
NGNGあるアドレスのデータを型にはめて相対アクセス可能にするって事だな。
相対アクセスって言葉が今まで出てこなかったのが笑える。
0067デフォルトの名無しさん
NGNG分かりやすくしようとしてるのに難しい言葉出してどうするよ。
0068デフォルトの名無しさん
NGNG(・∀・)ソレダ
0069デフォルトの名無しさん
NGNG0070やっとまともなレスが・・・?
NGNGやっぱlispやってる人ってレベル高いのかな
>>&7
どこが難しいんだろう?
0071デフォルトの名無しさん
NGNG相対アクセスってなんですか?
0072デフォルトの名無しさん
NGNG007371
NGNG0074やっとまともなレスが・・・?
NGNGある地点を0と見なして、+-いくつでアクセスする方法だよー
そんなことも知らないのー?
0075やっとまともなレスが・・・?
NGNGは知らなかったに一票(藁
0076やっとまともなレスが・・・?
NGNGも知らなかったに三票(藁
0077デフォルトの名無しさん
NGNG>>73を読んでいないレスだよね。
0078デフォルトの名無しさん
NGNGポインタはある地点を0と見なしているのか?(藁
0079デフォルトの名無しさん
NGNG「あるアドレスのデータを型にはめて、+-いくつでアクセスする方法を可能にするって事」
ということか。 これでわかってくれると思う?
0080デフォルトの名無しさん
NGNGポインタが理解できない人は、そもそもメモリや
アドレスについて理解していない。
0081デフォルトの名無しさん
NGNG分かってる人には分かるけど分かってない人には分からない説明だね。
0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNGボインタンを上手に例えてみよう
0085デフォルトの名無しさん
NGNGボインタンとはボン・キュッ・ボン。
おまいら「相対アクセス」なんて怪しい言葉もらって喜んでるけど、
普通は「相対アドレッシング」「間接アドレッシング」とかいうだろう。
変だぞ、変。
0086デフォルトの名無しさん
NGNG相対アクセス 230件
相対アドレッシング 136件
0087デフォルトの名無しさん
NGNGポインタと組にして検索すると
相対アクセス 12件
相対アドレッシング 73件
0088デフォルトの名無しさん
NGNG「相対アクセス」で引っかかるのはほとんどがURLに対する用語なので、はずれ。
ていうか「サイト相対アクセス向上理論」などという訳のわからん用語が
156件分引っかかってる…。
0089デフォルトの名無しさん
NGNGCのポインタって引き算しちゃ駄目だしなあ。
0090デフォルトの名無しさん
NGNGハァ?
かけ算やわり算と勘違いしてねーか?
0091デフォルトの名無しさん
NGNGいや、出来ると思うんだけど。
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNG>>1 ←のこと? ちょっと違うか。
0094デフォルトの名無しさん
NGNG違う。野球選手の目をつぶすためのあれ。
0095デフォルトの名無しさん
NGNGポインタってのはな、ちょっと俺にはわからないから>>96に聞いてくれってやつ。
ちなみに辞書ひいてる時にやられるとマジでムカつく。
by Programming Perl
0096デフォルトの名無しさん
NGNG馬鹿
>>96
洒落の分からない阿呆
0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNGお前高水準すぎ。
あと単なる基礎も理解してないのアフォすぎ。
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNGポインタ使ってみますた。
0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNG0104デフォルトの名無しさん
NGNG0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNG0107デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNG正確には ポインタ"しかない"言語は時代遅れ でしょう。
0111デフォルトの名無しさん
NGNGどういうこと?
参照があればOKとか?
0112デフォルトの名無しさん
NGNG0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNGすくなくともC++は別扱い。
0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNGそんなことも分からないのですか? :)
0117デフォルトの名無しさん
NGNGある凄腕2ちゃんねらが言った。
ポインタはティムティムだと。
つまり指したりするらしい。
0118デフォルトの名無しさん
NGNG出したり…
0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNGあの本買っちまった過去がある。●ソだったよ。鬱。
0121デフォルトの名無しさん
NGNGC#にもポインタはあるぞ。なぜか「unsafeコード」という括りにされているがな(W
0122デフォルトの名無しさん
NGNG「Javaにはポインタはない!」と宣言した奴の書いたコードがNullPointerException起こしてた。
0123デフォルトの名無しさん
NGNG「Java謎+落とし穴 徹底解明」の著者はこう言ってます
>Javaはポインタの言語だ ―Javaにはポインタ「しか」ない
0124デフォルトの名無しさん
NGNGそりゃ、おだぶつだ。
0125デフォルトの名無しさん
NGNGとにならない?
0126デフォルトの名無しさん
NGNGCOBOL
0127デフォルトの名無しさん
NGNGそうそう、ひでーナンセンス本だよな。
後輩が持ってたのをちらっと見ただけだから、よく覚えとらんが、
クソミソにけなしてやって泣かしてやった覚えが。
0128デフォルトの名無しさん
NGNG漏れも後輩が>>59持っているのみて仰天したが、
ニコニコと嬉しそうな後輩の姿見て、何もいえなかった…。
0129デフォルトの名無しさん
NGNG文脈にもよるなあ。
ポインタ値を明示的にいじれないところがJavaの特徴だと思うので、
そういう話の流れに持っていっているのならいい本なんじゃない?
0130デフォルトの名無しさん
NGNGwinのショートカット、
macのエイリアス、
unix系のシンボリックリンク
と、いう理解であってますか?
0132デフォルトの名無しさん
NGNGだからそれは参照だって。
0133デフォルトの名無しさん
NGNGそれが参照ならJavaのポインタも参照というくくりになってしまう。
「参照」と言い切れるのはハードリンクぐらいでは。
「エイリアス」というのは怪しげだけど、よく知らん。
0134デフォルトの名無しさん
NGNGJavaのポインタ=参照といってもあながち間違いではない
そもそも参照とポインタを区別する言語仕様に依存しない明確な基準など無い。
言語仕様書にポインタと書いてあればその言語ではポインタと呼ばれるし
参照と書いてあれば参照と呼ばれる。
0135デフォルトの名無しさん
NGNGポインタと参照の両方が存在する言語の場合はどうするんだ?
0136デフォルトの名無しさん
NGNG2行目以降はいただけない。ここのスレの流れ上は、
・ポインタ=ポインタ値またはそれを保持するポインタ変数
・参照=何かを指すもの全般。ただしポインタ値による実装は除き、
ポインタに対する演算等は不可。
みたいなローカルルールができてると思うけど。
この意味ではJavaはポインタ系の言語だが、
それが隠されている為あたかも参照系に見える、という説明が正しげ。
というわけで名言大賞は「相対アクセス」ということで。
0137デフォルトの名無しさん
NGNG2箇所訂正
×:ここのスレの流れ上は、
○:君の考えは
×:名言大賞は「相対アクセス」
○:名言大賞は「ローカルルール」
0138デフォルトの名無しさん
NGNGみたいなもんかと思ってそれ以降そのまんまなんだけど、
認識間違ってる?
0139デフォルトの名無しさん
NGNG参照=そうでないもの。
という定義はダメか? ダメなら理由もお願い。
0140デフォルトの名無しさん
NGNG0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNG「愛って何」みたいな議論だよな。
0143デフォルトの名無しさん
NGNG0144デフォルトの名無しさん
NGNG0145デフォルトの名無しさん
NGNGもっと、こう、グッときて、ブワァーってなる、なんか洒落た名前にしろよ。
0146デフォルトの名無しさん
NGNGいつものノリだと、「指示子」とかそんな感じか?
0147デフォルトの名無しさん
NGNG「ポインタカードで〜す!
「すき
0148デフォルトの名無しさん
NGNGスレッドストッパーごくろんさん。
0149デフォルトの名無しさん
NGNG「それ」を「りんご」だとか「apple」だとかいったりするとき
「それ」、「りんご」、「apple」はポインタじゃないかな。
また、「俺の昼御飯」なんてのもポインタじゃないかな。
文脈上いろんな実体を指し示すという意味で。
0150デフォルトの名無しさん
NGNG乳首はおっぱいを指し示している。
裸の女がずらっと寝転がっている。
0番目のポインタをタッチ。あ〜ん。
1番目のポインタをタッチ。う〜ん。
:
これがポインタの演算だ。
途中で飽きても、次の女を手前に引き寄せることはしない。
女と女の間が境界になってる。アラインメントの調整が必要なわけだ。
ちなみに最初の女は塗れてるんだ。
だから、塗るポインタ。
0151デフォルトの名無しさん
NGNG: '*'
| '*' type_qualifier_list
| '*' pointer
| '*' type_qualifier_list pointer
;
0152デフォルトの名無しさん
NGNGある変数を指し示す変数。
この値を変更すると別の物を指す(変数を指すとは限らないが)
・参照
ある変数の別称。
よって増減できない
#そもそも”別称”なので増減という概念がない
という理解は間違ってますか?識者解説キボン
0153デフォルトの名無しさん
NGNG陥没乳頭なのか
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNGJ字型なのかも。
0156デフォルトの名無しさん
NGNGメモリブロックの確保、解放のメカニズムとかも
教えといてほしいな。
ユーザープログラムからは見えない
管理情報(サイズとか)がどこかに書いてあるんでしょ?
0157デフォルトの名無しさん
NGNG・メモリのアドレスそのもの
参照→reference
・メモリ上のオブジェクトへの参照方法を示すもの
別称はaliasだろうね。
0158152
NGNG>参照→reference
>別称はaliasだろうね。
あぁ…そうですね。
でも何か意味的に参照を別称と言い換えた方が分かりやすい気がするのは漏れだけかなあ…?
というか参照を教える時にはいつも「ある変数の別名のことだ」って言ってるんだけど、これって罪?
これだと「参照がnullを参照しない(ややこしいな…)」ことについての説明もうまくいくんだけど。
0159デフォルトの名無しさん
NGNGpointerとreferenceは
0160デフォルトの名無しさん
NGNGpointer
6. Computer Science A variable that holds the address of a core storage location.
まあ、実際には「ポインタの値を渡す」を「ポインタを渡す」とも
言っちゃうから、言葉に惑わされずに正確な意味を捉えてさえいれば
インジャネーノ
0161デフォルトの名無しさん
NGNG0162デフォルトの名無しさん
NGNGハンドルとして実装された処理系だって考えられる。
譬えとしてなら良い説明だと思うけどね。
0163デフォルトの名無しさん
NGNGアクセスするための手がかり一般をアドレスだって風な、抽象的な解釈も化膿姉妹
0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNGってのがミソだな。
0166デフォルトの名無しさん
NGNG0167デフォルトの名無しさん
NGNG思ったことないかい
0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNG0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNG0172デフォルトの名無しさん
NGNGそうか? どいつもこいつも特定言語に片寄っててうんざりだが。
ポインタの定義ならfjかJHで久野セソセイがやっていたような。参考になるかも。
0173デフォルトの名無しさん
NGNG0174Javaら
NGNGJavaのポインタのあいまいな立場を感覚的に表してるぽげ。
さて、nullはどうしようか。。。
0175デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNGC++の参照を他の言語の参照と同列に扱ってるし。
0177デフォルトの名無しさん
NGNGポインタ変数のことを単にポインタと言ってるのがほとんどじゃないかな。
2行目に関しては同意
0178デフォルトの名無しさん
NGNGぽいんた
0179デフォルトの名無しさん
NGNGCの感じだと、たぶん「アドレス」というデータが「ポインタ」という変数に
入ってるとかいう感じではないかと。だって、
int i = 123;
int *p = &i;
で、
123=値、i=変数、&i=アドレス、p=ポインタ
って言いそう
0180デフォルトの名無しさん
NGNGポインタ=アドレス変数
かな。で、アドレスに基づいた低レベルなアクセス方法が提供されていると
0181デフォルトの名無しさん
NGNG意味だったんじゃないかな。
ところが、mallocとか「アドレスを返す関数」があって、そのアドレスを
即ポインタに格納して使うような場合があって、それを、
「この関数はポインタに入れる値を返す」というのを
「この関数はポインタを返す」と言ったんじゃないのかな。
これは英語では普通の発想だと思う。
変数と中身、型と値をときどき厳密に区別しないで書いてある
ことが多いから。
0182デフォルトの名無しさん
NGNG建前: ポインタ=アドレス変数
慣用: ポインタ=(参照先の型を指定された、微妙に高級な)アドレス
0183デフォルトの名無しさん
NGNG特に、↓これ。
>これは英語では普通の発想だと思う。
厳密には「これはA型のオブジェクト」というのを「これはA」と言ったりする
のと似てる。
そんなもんだと思う。
0185デフォルトの名無しさん
NGNG0186デフォルトの名無しさん
NGNG0187デフォルトの名無しさん
NGNG嫌な思い出でも?
0188デフォルトの名無しさん
NGNG┌──────────┘- \
│ \
│ こんな感じでしょうか >
│ /
└──────────┐- /
ヽ(´ー`).ノ |/
( へ)
く
↑ ポインタさん
- = ≡三 |\
- = ≡三 ┌──────────┘- \
_ = ≡三 │ \
│ こんな感じでしょうか >
 ̄ = ≡三 │ /
- = ≡三 └──────────┐- /
(´ー`) - = ≡三 |/
( ヽ ヽ)
/ >
↑ ポインタ
0189ライター&出版社
NGNGこれがあるかぎり、1年に何冊も本が出せるのです。
あんまり種明かしをしないように。
0190デフォルトの名無しさん
NGNG大変という雰囲気を維持しておくのは、商売的に重要そうだね。
ポインタ本書いてる奴って...、あいつか?
0191デフォルトの名無しさん
NGNG{
printf("%d\n", a[3]);
}
int b = {1,2,3,4};
kuso(b);
↑がわかりません。
0192デフォルトの名無しさん
NGNGint b = {1,2,3,4};
とは?
0193デフォルトの名無しさん
NGNGint b[] = {1,2,3,4};
のつもりなんじゃない?
0194デフォルトの名無しさん
NGNG0195デフォルトの名無しさん
NGNG0196デフォルトの名無しさん
NGNG実務になんの関係もないから。
0197デフォルトの名無しさん
NGNG一体何に悩んでるんだ?
>>191だって(>>193が正しいとすると)どこに疑問を持つのかが分からん。
0198あげ
NGNG0199デフォルトの名無しさん
NGNGmain関数は?
int b[]=〜?
アドレス渡しと値渡しの違いは?
など、小1時間問い詰めたい・・・。
0200デフォルトの名無しさん
NGNGchar *kiriban; /* 文字型ポインタ */
win = &number; /* number:レス番号 */
printf("%c get\n",kiriban);
*-------------------------------*
出力結果:
200 get
0201デフォルトの名無しさん
NGNG同意
0202デフォルトの名無しさん
NGNG「ポインタは難しい」と洗脳されてるから、
本来は単純なはずのポインタを
難しく考え過ぎるんだろうな。
0203デフォルトの名無しさん
NGNG「関数ポインタを返す」に比べて
「関数アドレスを返す」ってあんまり言わない気がするが、
フォーマルにはアドレスと言ったほうがよさそう。
0204デフォルトの名無しさん
NGNGCで云うポインタと考えていいのでしょうか?
0205
NGNG0206デフォルトの名無しさん
NGNG*は単なるそばかす
0207デフォルトの名無しさん
NGNGでも、もし INDIRECT("A1") というふうに定数などでもで書けるならば、
それはポインタ的じゃないよ。つまり間接アドレッシングっぽくない。
0208デフォルトの名無しさん
NGNGなんで?定数へのポインタは駄目なの?
0209デフォルトの名無しさん
NGNG駄目じゃあないぞ。
え、ちがう?
0210デフォルトの名無しさん
NGNG0211207
NGNGセル B1="A1"
とすると、対応はこう↓なると思う。
A1 ... string a
B1 (= "A1") ... string *p (= &a) ★これがポインタ
INDIRECT(B1) ... *p (= a)
INDIRECT("A1") ... *(&a) (= a)
エクセルで喩えるのは、さすがに無理が。
0212デフォルトの名無しさん
NGNGなんていっていた馬鹿がいた。
今時Cとかポインタとかいうのはその残党だろ。消えろ!
0213デフォルトの名無しさん
NGNG0214デフォルトの名無しさん
NGNGポインタを知らないプログラマーがいても俺はいいと思うが、
低レベルなことを理解することで性能のよいプログラムが作れるようになる可能性がある。
0215デフォルトの名無しさん
NGNG0216デフォルトの名無しさん
NGNG今も爺と
共にある。
0217212
NGNG口をはさむつもりはない。
でもね、プログラミングは構造化とかオブジェクト指向で
明らかに進化したよね。俺にとってはどうでもいいんだけど、
ポインタを使わなずにプログラムできるようになったのは
進化といえないのかね?
(もちろん、ドライバなんか書いている人は別でしょうね)
0218デフォルトの名無しさん
NGNGそんなに、批判したけりゃ「オブジェクト指向は戦場では必要なし�G 」にでも逝けばぁ
0220デフォルトの名無しさん
NGNGポインタわからないなら、そう言いなよ。誰も責めないからさ。
そして、もう来ないでね。
0222デフォルトの名無しさん
NGNGハイハイ、貴方が「自分は C のポインタが使える」と思っていることは
良くわかりましたから、もう二度と来ないでね。
0223デフォルトの名無しさん
NGNG↓
大笑い。 → >>212 ← 大笑い。
↑
大笑い。
0224デフォルトの名無しさん
NGNG0225デフォルトの名無しさん
NGNGポインタだけで本書くような厨ライターがいるのが悪いな。
やつら職業ライターで、実務経験はないんだろうな。
0226デフォルトの名無しさん
NGNG君が書いてくれないか
0227デフォルトの名無しさん
NGNGよし書いてやろう。
あ、でも、ポインタだけじゃ、せえぜえ2ページにしかなんねーや。
俺には、厨ライターの才能はないな。
>>226は「ポインタだけで」という形容詞をちゃんと読んだのか?(プ
0228デフォルトの名無しさん
NGNG0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNGナゼカワロタ
0233デフォルトの名無しさん
NGNGポインタと言う概念が分からない阿呆は痛い。
0234デフォルトの名無しさん
NGNGポインタは、メモリ上にあるデータを、メモリ上のアドレスとしてみる、ってだけだろ?
っていうか、本当にポインタがわからないプログラマっているの?
0235デフォルトの名無しさん
NGNGてか、分かったつもりでいる奴もイパーイいるよ。
0236デフォルトの名無しさん
NGNG以上
0237デフォルトの名無しさん
NGNG> ポインタは、メモリ上にあるデータを、メモリ上のアドレスとしてみる、ってだけだろ?
プ
0238デフォルトの名無しさん
NGNG「メモリ上のアドレス」で良いと思うぞ。
ただ、それ一辺倒だとそのうちvtblがどうとかエラいことになりそうだけど。
0240デフォルトの名無しさん
NGNG>ポインタは、メモリ上にあるデータを、メモリ上のアドレスとしてみる、ってだけだろ?
これで分かってると思ってるなら、まずい気がする・・・。
まあこんな所で演説ぶるのも嫌だから、簡潔(?)に書いたのかもしれんけど。
0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNGそれは単なる和訳
0243デフォルトの名無しさん
NGNG命令語とは、ただの整数
データとは、ただの整数
ノイマンばんざぁい
0244デフォルトの名無しさん
NGNG参照は比較(それが指す実体じゃないよ)できることもあるが、比較できないこともある。
足すことができることもあるが、できないこともある。
ポインタはあらゆる四則演算、比較が可能。
ただ、それをやることに意味がなかったり判かりにくくなったりするので、通常言語機構で制限が加えてある。
アセンブラになると、それが素の状態になる。CやC++だとキャストでなんとかできる。
判りやすさと引き換えに自由度を手に入れることができるのがポインタ。
というのはどう?
0245デフォルトの名無しさん
NGNGよってポインタの計算とは
日本・大阪・高槻
日本・東京・三軒茶屋
の構造を利用して
青森の住所を算出するようなもん。
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNGせつねぇ〜
0248デフォルトの名無しさん
NGNG>の構造を利用して
>青森の住所を算出するようなもん。
できるか!(笑
日本の幅は家一軒分しんかないんけ!
0249デフォルトの名無しさん
NGNG仕事の苦労が外部にわからないとこはあってる。
0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNGとか書いてあると、もうわけわからん。
これのせいでプログラミング作法が読めない。
0252デフォルトの名無しさん
NGNGポインタの配列
0253デフォルトの名無しさん
NGNG(char) *(hunga[i])
(char pointer) hunga[i]
(char pointer array) hunga
0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNGCのポインタ宣言の文法が腐ってるだけ。
0256デフォルトの名無しさん
NGNG別に腐ってないよ。簡潔に表現できる分にはあれで正解。
優先順位知ってれば混乱しない。
0257デフォルトの名無しさん
NGNG0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNGsyntax rotten
0260デフォルトの名無しさん
NGNGなんだけど、自分の場合文字列配列を
使うことが多いので、こんな感じで
ポインタを使ってデータにアクセスしてるのだけど、
この認識でいいかな? >>識者
int main(void){
char a[10][1];
char *pa[1];
unsigned long int *ppa;
pa[0] = &(a[10][0]);
pa[1] = &(a[10][1]);
pa[0] = "aaaa";
pa[1] = "bbbb";
ppa = (unsigned long int *)pa;
printf("%s\n",(char *)*ppa);
printf("%s\n",(char *)*(ppa + 1));
}
0261デフォルトの名無しさん
NGNG> ppa = (unsigned long int *)pa;
何したいのさ
0262デフォルトの名無しさん
NGNGstd::vector使えと
0263デフォルトの名無しさん
NGNGppa=pa
だと
paは char型へのポインタだから
一応ppaと型を合わせてキャストしただけ。
特にやらなくてもいいのかな。
となると、
pa[0] = (char *)&(a[10][0]);
pa[1] = (char *)&(a[10][1]);
としておくべきだったかな。
0264263
NGNG>paは char型へのポインタだから
paは char型へのポインタのポインタだから
キャストは必要ないね。
逝ってきます。
0265デフォルトの名無しさん
NGNGchar a[10][2];
char *pa[2];
char **ppa;
こうでない?
0266263
NGNG多次元配列間違ってました。
後の指摘もそうっすね。
調べて今書こうと思ってました。
もう一回書きます。
int main(void){
char a[1][10];
char *pa[1];
char **ppa;
pa[0] = (char *)&(a[0][10]);
pa[1] = (char *)&(a[1][10]);
pa[0] = "aaaa";
pa[1] = "bbbb";
ppa = pa;
printf("%s\n",(char *)*ppa);
printf("%s\n",(char *)*(ppa + 1));
}
0267デフォルトの名無しさん
NGNG0268sage
NGNG何におけるポインタの話をしたいのか言わない1は釣りしてるだけだよね。
0269while
NGNGC++,C,(もしくはjava)
やり直しましょう…
入門書に書いてあると思います…
pa[0] = (char *)&(a[0][10]);
// ↓ たぶんこうしたいかと…
pa[0] = (char *)&(a[0][0]);
ppa = pa;
// ↓ たぶんこうしたいかと…
ppa = &pa;
printf("%s\n",(char *)*ppa);
printf("%s\n",(char *)*(ppa + 1));
// ↓こうしたほうが簡潔かと…
printf("%s\n", *ppa) );
printf("%s\n", *(ppa+1)) );
あと2,3箇所は
もっと突っ込んであげたほうがいいところはありますが…
そこまで善人では僕はありません。
…基礎からやり直しましょう…
0270デフォルトの名無しさん
NGNG漏れと違ってすごいですね。。
そういうなら
pa[0] = (char *)&(a[0][0]);
pa[1] = (char *)&(a[1][0]);
こっちの方が正しいのでは。
しかし、
pa[0] = (char *)&(a[0][10]);
pa[1] = (char *)&(a[1][10]);
でも269の
pa[0] = (char *)&(a[0][0]);
pa[1] = (char *)&(a[1][10]);
でも
きちんと
aaaa
bbbb
と表示できた。
基礎の出来ているなら何故
だか分かるのですよね?
あと、いくら何でもppa = &pa
ないでしょう。
コンパイラにも怒られましたよ。
0271デフォルトの名無しさん
NGNGpa[1] = &(a[10][1]);
pa[0] = "aaaa";
pa[1] = "bbbb";
上書きしてどうするの?っていうかネタでしょ。
0272デフォルトの名無しさん
NGNGint main(void){
char a[2][10] = {"aaaa","bbbb"};
char *pa[2] = {a[0], a[1]};
char **ppa = pa;
printf("%s\n",ppa[0]);
printf("%s\n",ppa[1]);
}
0273デフォルトの名無しさん
NGNG0274デフォルトの名無しさん
NGNGpa[0] = (char *)&(a[0][0]);
pa[1] = (char *)&(a[1][0]);
でポインタとデータ部をリンクさせ、
pa[0] = "aaaa";
pa[1] = "bbbb";
そこに文字列代入しているんじゃないの?
0275デフォルトの名無しさん
NGNG多次元配列なんて使ったことないから問題ない
0276デフォルトの名無しさん
NGNGいつからアドレス操作が strcpy の代わりになるようになったのか小一時間
0277デフォルトの名無しさん
NGNGpa[0] = a[0];
pa[1] = a[1];
strcpy (pa[0],"aaaa");
strcpy (pa[1],"bbbb");
ってやりたかったんだな。
>>274
プ
0278while
NGNGppa = &pa
// ↓こうだった…これはミスでした…
ppa = &pa[0];
pa[0] = (char *)&(a[0][0]);
// ↓これは省略したんです(同じロジック何回も書くの嫌でしょう?)
pa[0] = &(a[0][0]);
pa[1] = &(a[0][1]);
0279while
NGNG1:データ領域の指定おかしい(確保していない領域も計算対象としている)
char a[1][10];
↑10個の配列を1個作成>10個の配列を2個の作成が正しいよって下記が正しい↓
char a[2][10];
char *pa[1];
↑1個の配列を作成>2個の配列を作成が正しいよって下記が正しい↓
char pa[2];
データ領域を指定した以上に使っているので…
このような小規模のプログラムでは問題ないでしょうが
ソフトウェアを作ろうと思えば、動作に不具合を発生させます。
2:なぜ表示されたのか?
pa[0] = "aaaa";
pa[1] = "bbbb";
↑ここで非明示のデータ領域に
指定されたデータを格納し
そのポインターのみを取得して
そのポインターを参照してデータを出力しているからです。
ですので、ためしに↓を実行してごらんなさい。
printf("%c\n",a[0][0]);printf("%c\n",a[0][1]);
printf("%c\n",a[1][0]);printf("%c\n",a[1][1]);
0280デフォルトの名無しさん
NGNGpa[0] = a[0];
pa[1] = a[1];
と、
pa[0] = &a[0][0];
pa[1] = &a[1][0];
は同じ。
0281デフォルトの名無しさん
NGNG#include <string.h>
main () {
char a[2][10];
//char *pa[2] = {a[0], a[1]};
char *pa[2] = {&a[0][0], &a[1][0]};
char **ppa = pa;
strcpy (ppa[0], "aaaa");
strcpy (ppa[1], "bbbb");
printf ("%s\n", a[0]);
printf ("%s\n", a[1]);
}
0282while
NGNG誤植したので修正します
pa[0] = (char *)&(a[0][0]);
// ↓これは省略したんです(同じロジック何回も書くの嫌でしょう?)
pa[0] = &(a[0][0]);
pa[1] = &(a[1][0]);
0283デフォルトの名無しさん
NGNG0284while
NGNGそれはその書き方が僕の好みだから…。
0285デフォルトの名無しさん
NGNG#include <string.h>
main () {
char a[2][10];
char (*p)[][10] = &a; // 多次元配列へのポインタ
strcpy ((*p)[0], "aaaa");
strcpy ((*p)[1], "bbbb");
printf ("%s\n", a[0]);
printf ("%s\n", a[1]);
}
0286デフォルトの名無しさん
NGNG0287デフォルトの名無しさん
NGNGそれは言えてるようで、言えてないようで。。。
教えられ方が下手なんだと思う。
0288281
NGNGchar **ppa = pa;
↓
char **pp = pa; // pa = char pointer array, pp = char pointer pointer
0289デフォルトの名無しさん
NGNGchar *a;
a="aaa"
ができるのに
char *pa[1]
pa[0] = "aaa"
ができないということに
なるけど何故?
と思ったら、最初に宣言した配列
とは別のアドレス参照してしまう
ということですね。
上書きとはアドレスの上書き
だったのですね。
0290デフォルトの名無しさん
NGNG2ちゃんねらーじゃないね〜whileってひと。
っていうかネタってわかれよ(藁
0291デフォルトの名無しさん
NGNGたぶんあってる。Cで文字列を扱うときは考え方を改めなければイケナイ
0292デフォルトの名無しさん
NGNGはぁ?
0293デフォルトの名無しさん
NGNG0295デフォルトの名無しさん
NGNG260 :デフォルトの名無しさん :02/09/11 15:31
ポインタ配列(ダブルポインタ)
なんだけど、…
0296while
NGNGchar *a;a="aaa";も
char *pa[1]; pa[0] = "aaa";も
できます。
↓これは正しい。
>上書きとはアドレスの上書き
>だったのですね。
0297デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
int main(void){
int i;
char *a[1];
char **pa;
for(i = 0; i <= 1; i++)
a[i] = (char *)malloc( 10 * sizeof(char) );
strcpy(a[0],"aaaa");
strcpy(a[1],"bbbb");
pa = &a[0];
printf("%s\n",*pa);
printf("%s\n",*(pa + 1));
// for(i = 0; i <= 1; i++)
// free(a[i]);
}
最後、freeしといた方がいいと思ったけど
コメントを外すと
aaaa
bbbb
の後セグメンテーションエラーが出る。
0298デフォルトの名無しさん
NGNG弾ける人には訳ないが、弾けない人には悩みの種。
0299デフォルトの名無しさん
NGNG0300デフォルトの名無しさん
NGNG>char *a[1];
> for(i = 0; i <= 1; i++)
> a[i] = (char *)malloc( 10 * sizeof(char) );
> strcpy(a[0],"aaaa");
> strcpy(a[1],"bbbb");
逝って良し
0301while
NGNGこうでしょう…
#include <stdio.h>
#include <string.h>
void main( void ){
int i;
char *a[2];
char **pa;
for( i = 0; i < 2; i++ )
a[i] = (char *)malloc( 10 * sizeof(char) );
strcpy(a[0],"aaaa");
strcpy(a[1],"bbbb");
pa = &a[0];
printf("%s\n",*pa);
printf("%s\n",*(pa + 1));
for( i = 0; i < 2; i++ )
free(a[i]);
}
0302デフォルトの名無しさん
NGNGVB厨逝って良し。
0303デフォルトの名無しさん
NGNG1バイトだね。
0305デフォルトの名無しさん
NGNG0306デフォルトの名無しさん
NGNGポインタって、「メモリ上のアドレスを参照する」という以外の解釈のされ方があるのか?
ポインタ変数の値は確かに演算可能だけど、この場合、その値は「ポインタ」としてはコンピュータが判断してないわけだろ?
演算するんだから、ポインタ変数に入っている値はポインタではない、っていえるんじゃない?
そもそも、コンピュータで扱うデータは、全て解釈の違いがあるだけだろ?
その解釈を分けて「整数」とか「浮動少数」とか言ってるんだから、
そういう解釈をすることを前提にして「ポインタ」も名づけてるんじゃないの?
0307デフォルトの名無しさん
NGNGVBだと a[1] で要素2個の配列ということになるの?
0308デフォルトの名無しさん
NGNGなるよ。
0309while
NGNG>ポインタ変数の値は確かに演算可能だけど、
>この場合、その値は「ポインタ」としてはコンピュータが判断してないわけだろ?
そんなことはないですよ。
コンピュータは演算されていてもポインタとして扱います。
>>307
そうかもしれませんね…。
3年はBASIC読んでないので憶えていませんが。
0310デフォルトの名無しさん
NGNG宣言は要素数なのか。
0311デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNGそういう意味じゃあなくて、ポインタかどうかは、コンピュータがそれをどう扱ったか(判断したか)ではないのか?ということ。
そもそも、人間の思考能力や記憶力には限界があるから、変数に型があって、コンピュータに判断をまかせてるんじゃないの?
メモリ上では、そこに入っている値が何であるかなんて判断されないわけだし、そこにあるデータが「プログラム」なのか「データ」なのかも区別がないんだから。
つまり、コンピュータがそれを「どう判断したか」によって、ポインタなり整数なりが、定義されると考えたほうがいいんじゃないか?ッてことをいいたかった。
っていうか、俺が間違ってました、ごめんなさい。
0313デフォルトの名無しさん
NGNG必ずしもそうは言い切れないのでは。
int aaa (int p)
{
return p + 1;
}
char * aaa (char *p)
{
return p + 1;
}
.globl _aaa
.def_aaa;.scl2;.type32;.endef
_aaa:
movl 4(%esp),%eax
incl %eax
ret
どっちも同じコードになってるけど。
0314デフォルトの名無しさん
NGNGではアドレスは1バイト進むし
intが4バイトなら
int *a;a + 1;
は*aは4バイト進む。
ポインタの実体はアドレス値だけど
型情報をもったアドレス値
という認識でいいのでは。
0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNGchar *a;だと
*(a+1)は*aの1バイト先の値を参照するし
intが4バイトなら
int *a;a + 1;
*(a+1)は*aの4バイト先の値を参照する。
0317デフォルトの名無しさん
NGNGそれ自体は型情報をもっていなくて、コンパイルした時点で+1が+4に置き換わっているとか、
コンピュータがそう判断して+1を+4と置き換えながら実行しているのでは?
っていうか、やっぱり、「コンピュータがそれをどう判断するか」だと思うンだけど、意見くれよ(;´Д`)
0319デフォルトの名無しさん
NGNGネタ?
自分でコンパイルして確かめてみなよ。
0322デフォルトの名無しさん
NGNGchar *とか
int *
といった時点で型情報を持った
アドレス値として扱うのでは。
ただ単にアドレスなら、
char a;unsigned long ad;ad=&a;
でいいのでは?
0323デフォルトの名無しさん
NGNG型情報は別の場所にあるんじゃないの?
0324デフォルトの名無しさん
NGNG説明するには
どっちでもいいじゃん。
0325デフォルトの名無しさん
NGNGそれを型情報をもったアドレス値として扱うのは「誰」?
0326デフォルトの名無しさん
NGNG0327デフォルトの名無しさん
NGNG型情報は記憶装置にではなく、宣言やキャストで
この型として扱えと命令しているのではないのかな。
0328デフォルトの名無しさん
NGNG> 型情報は別の場所にあるんじゃないの?
ネタだよな ?
0329while
NGNGint aaa (int p){return p + 1;}
push ebp
mov ebp,esp
mov eax,dword ptr [p]
add eax,1
pop ebp
ret
char * aaa (char *p){return p + 1;}
push ebp
mov ebp,esp
mov eax,dword ptr [p]
add eax,1
pop ebp
ret
0330デフォルトの名無しさん
NGNGおまえが、だろ?
0331デフォルトの名無しさん
NGNG必要とするだけで実行時は型情報なんて存在しないんじゃないの。
0332while
NGNGint aaa(int p){return p++;}
push ebp
mov ebp,esp
mov eax,dword ptr [p]
mov ecx,dword ptr [p]
add ecx,1
mov dword ptr [p],ecx
pop ebp
ret
char* aaa( char* p ){return p++;}
push ebp
mov ebp,esp
mov eax,dword ptr [p]
mov ecx,dword ptr [p]
add ecx,1
mov dword ptr [p],ecx
pop ebp
ret
0333デフォルトの名無しさん
NGNG「プログラム」自体がメモリ上に存在してるから、実行時には、全てデータとしてしか存在してないはず。
すると、実行時には宣言とか型情報っていうのはメモリ上にあることなんない?
っていうか、「誰が」それを見て語っているのかに食い違いがあるような……
0335デフォルトの名無しさん
NGNG0336while
NGNGしばらくレスできません。
ご理解下さい…
0337デフォルトの名無しさん
NGNG機械語なら、仕様書があれば解ると思います。
0338デフォルトの名無しさん
NGNG>>329と>>332って>>313
と同じことやって同じ結果(どっちも同じコードに落ちる)
になってるということでしょ?
0340デフォルトの名無しさん
NGNGそうなると型情報はプログラムが
メモリに読み込まれた時点であるかも
しれないね。
100バイトのメモリを確保するコードの
プログラムは、実行時には
100バイト+プログラム実行領域があり、
その実行領域に存在するのかな?
妄想だけで話すなと言われそうだけど。。。
0341デフォルトの名無しさん
NGNG妄想だけで話すな。
0342デフォルトの名無しさん
NGNG正確には型情報っていうよりも、それをどう扱うかの「処理手順」が入ってるんだと思う。
それを「浮動少数」って(便宜上)コンピュータが解釈したなら、「計算するときに丸め込み処理を行う」「上位何ビットは指数をしめす」とか。
0343342
NGNG0344デフォルトの名無しさん
NGNG0345デフォルトの名無しさん
NGNGおまえが、だろ?(w
別の場所=ソースコードってのはどうだ。(w
0346while
NGNG>>338
(ええい、飯は抜きだー!!)
p+1,では単純に整数として計算されます。
ポインタとして演算(いいのか?この表現)するには
p++,じゃないといけないんですよ。
それにいざとなったら
機械語やアセンブラのソースを組み込む事も出来ますが、
それでもvoid*,int*,はポインターのデータ領域なんです。
つまりシステム的には、
>コンピュータは演算されていてもポインタとして扱います
の通りなんです。
>>309
0347デフォルトの名無しさん
NGNG>それでもvoid*,int*,はポインターのデータ領域なんです。
くわしくお願い(;´Д`)
0348デフォルトの名無しさん
NGNGこーいう話で「コンピュータ」を動作主(主語)にしないでくれよ。
「コンパイラは〜をあくまでもポインタとして扱う」とかなら許せるが、
それじゃ「コンピュータに相性を占ってもらった」とかと同じレベルだぞ
0349while
NGNG↓ここできかれるといいかも(怠け者)
http://pc3.2ch.net/test/read.cgi/tech/1031340950/l50
0350デフォルトの名無しさん
NGNG便宜上って断ってるジャン(ノД`)
0351デフォルトの名無しさん
NGNGん?
ポインタでも
p+1はあるんでないの?
p++;a=*pと
a=*(p + 1);
での値を取得するとき
前者のpの値
は変わるけど、
後者は変わらないんでないの?
0352デフォルトの名無しさん
NGNGはいはい、俺が悪かった。お前が、必死なのはわかったし、話の流れが読めない
奴と言うことも良くわかった。
0354デフォルトの名無しさん
NGNGプ
流れ読んで煽れるかアフォ!
0355デフォルトの名無しさん
NGNG>p+1,では単純に整数として計算されます。
>ポインタとして演算(いいのか?この表現)するには
>p++,じゃないといけないんですよ。
ネタか?
0357デフォルトの名無しさん
NGNGでした。ボクが作った人工無能ちゃんです。
今後とも可愛がってあげてください。
0358デフォルトの名無しさん
NGNGあえてマジレスすると
char *aaa (char *p) {return ++p;}
も
char *aaa (char *p) {return p + 1;}
も同じ結果↓になるけど。
_aaa:
movl 4(%esp),%eax
incl %eax
ret
私が悪かったです。ごめんなさい。
0359デフォルトの名無しさん
NGNGコンピュータって言う言葉が、あいまいと言うことか ? それなら納得する
が、プロセッサを主語にするなというなら納得できないぞ。
コンパイラは、〜をポインタとして扱い、コードを生成する。プロセッサ
は、生成されたコードに従い単に実行するだけだ。
と言う風に使ってるからな。
0360デフォルトの名無しさん
NGNGさっきからいってるけど、ポインタは、「その値をどう解釈するか」と見た場合に定義されるものじゃないか?
その値とは、ポインタのことじゃなくて、メモリの読み込み位置のビットのことね。
0362360
NGNG>>360がつまり、俺の視点であり、主張。
0364デフォルトの名無しさん
NGNGゴメソ、アセンブラコードで違うから
とそうだという説明じゃ
分かんない。
本当にポインタ演算はインクリメントしか
ないの?
漏れの書いた*(p+1)はポインタ演算とは
呼ばない?
0365デフォルトの名無しさん
NGNGp,qがポインタなら
p+1 p-qもポインタ演算
*(p+1)も逆参照というポインタ演算
つーか適当な本読めよ
0366デフォルトの名無しさん
NGNGint p = 0;
i = (int *)(p + 398);
とか書いてみる。
0367while
NGNG環境の違いで細かい違いが出るんですよ。
(もちろん、exe型は関係ないですが)
…ずっと前に勉強したんですが、
まさかと思い、考慮してませんでした。
(つかっていない記憶でしたので使うのが
_怖かったというのもあります。)
0368デフォルトの名無しさん
NGNGもうおまえ、死ね!
0369デフォルトの名無しさん
NGNG>>346でそう書いてあったからだよ。
0370デフォルトの名無しさん
NGNGwhileの書いた事なんて信用すんなよ。
0371デフォルトの名無しさん
NGNG環境の違いもクソも無い
0372デフォルトの名無しさん
NGNG0373デフォルトの名無しさん
NGNGネタ?
0374while
NGNG>>365
さんのいうとおり
適当な本を読まれたほうが確実です。
(僕と貴方のような環境の違い
_についても書かれています)
今の僕に聞いても、そこらへんはうろおぼえでしょうし。
0375デフォルトの名無しさん
NGNGそんなに生き恥さらして何になるんだ?
0376デフォルトの名無しさん
NGNG_(アンダーバー)は、VBでのレイアウトを整えるための記号?
0377デフォルトの名無しさん
NGNGも し か し て
* * * 育 っ た 環 境 の 違 い * * *
で す か ?
0378デフォルトの名無しさん
NGNGwhile
↓
一身上の都合(両親の離婚、等)で中学中退
↓
(学力低下)
↓
「(ボクが理解できないのは育った)環境の違いです。(みなさん中学卒業できるなんてうらやましい)」
って事でいい?
0379デフォルトの名無しさん
NGNG0380デフォルトの名無しさん
NGNGソレデ(・∀・)イイ!
0381デフォルトの名無しさん
NGNG一応マジレスしとくと、「継続行」を表す記号です。
0382デフォルトの名無しさん
NGNGぷぷっ。煽りのつもりだったのか...、まあ本人がそう言うんだから良いか。
どう見ても、荒らしにしか見えないけどね。
0383デフォルトの名無しさん
NGNG痛いところつかれて反論のしようがなくて
脂汗流して全身から湯気を立ち上らせて
ブハァブハァ言いながら悔しがってるくせに
「環境の違いです」などと冷静を装いつつも
やっぱり頭が悪いから
全然意味不明で的はずれの文章しか書けない君は
さらに嘲笑されて悔しさのあまり
トンカチでバスの乗客に襲いかかる前に
職場のベルトコンベアに巻き込まれて
汚い汁と脂をまき散らしつつ
同僚の冷たい視線を浴びながら他界すればぁ?
0384デフォルトの名無しさん
NGNG0385デフォルトの名無しさん
NGNG61 :デフォルトの名無しさん :02/09/03 08:22
定義は
(ある型のデータを持てる)変数、
の、場所をあらわすデータ(=アドレス?)、
を、持てる変数(=ポインタ)。
とかだよね。
「何らかの犬(=データ)、
を、飼っている家(=変数)、
の、住所(=アドレス)、
を、書く欄(=ポインタ)」
で、どうだ!
0386while
NGNGreturn(p++); // !p++ が実行されない!
p++
return p; // p++ が実行される
ポインタ演算については
p++; も p=p+1; も等価
環境に左右されない
以上
…うろ覚えの知識がないように基礎を復習します。
すいませんでした。現在まで調査作業してました。
0387デフォルトの名無しさん
NGNGp++
return p; // p++ が実行される
コンパイルできたら確かにバグだ。
0388デフォルトの名無しさん
NGNG多分実行されていると思うぞ。
p++はpを返してからpに1足すからな。
とりあえずpをstaticにして次回呼び出し時に値を見てみな。
0389while
NGNGその上の行でですよ
0390デフォルトの名無しさん
NGNG0391デフォルトの名無しさん
NGNG0392デフォルトの名無しさん
NGNGreturn (++p);
にしたら?
インクリメントされる前に戻されてしまうのでは?
0393while
NGNG本当だ…しらなかった。
ありがとうございます!
やった!赤っ恥かいたけど知識が増えたー!
0394デフォルトの名無しさん
NGNG0395デフォルトの名無しさん
NGNG*pってのはpを宣言しているのだと100回言っても*pだと思ってやがる。
コンパイルエラーが出たら適当に*をとったり&をつけたり・・・逝ってくれー
0397デフォルトの名無しさん
NGNGズッコケコテハン増員断固反対
ズッコケコテハン増員断固反対
0398デフォルトの名無しさん
NGNGint *という型のpを定義しているんだと言ってやれ。
0399デフォルトの名無しさん
NGNGお前も逝って吉
0400デフォルトの名無しさん
NGNG#define __ptr *
int i, __ptr j;
char __ptr str;
0403デフォルトの名無しさん
NGNG実行されているかは、状況によるよ。最適化すると、ローカル変数なら
普通は '++' の分は無駄だから削除されちゃうよ。(static もしくは、
グローバル変数なら >>388 が言う通り。)
で、これとポインタってなんか関係あるの ? int でも、同じだと思う
が...。
0404デフォルトの名無しさん
NGNGそれいいかも。
個人的にはlong *pが好きなんだけど(笑)
0405デフォルトの名無しさん
NGNGそれはまずい。
「じゃあ int *p[10]; の p の型は?」
って聞かれる
0406while
NGNG生まれてはじめてです…。
例:++c;
0408399
NGNG0409while
NGNGreturn には 前置インクリメント を使うようにします!
0410デフォルトの名無しさん
NGNGインクリメントせずに素直に+を使えよ。どうせ自動変数なんだろ?
0411デフォルトの名無しさん
NGNGお前はそんな知識で物知り顔してたのかと半万年
0412デフォルトの名無しさん
NGNG素直に、int * の配列って答えりゃいいと思うが..。
0413while
NGNGうっ…だってソフトウェアを組む際にいらないんですもん…
それにいままで僕が答えたのは全部基礎知識の範囲内です。
高度な事は答えてません。
…ぶっちぁけ、僕の取り掛かっている事で高度な事なんて
自分の作っているプログラムの処理アルゴリズムくらいです。
0414デフォルトの名無しさん
NGNG自分が作っているプログラムの処分アルゴリズム
に見えた
0415デフォルトの名無しさん
NGNGだね。ソース見てて、return ++p; なんかあったら、そのソース見る気が
激しく失せるよ。
0416デフォルトの名無しさん
NGNGint twice (int x) {
return (x *= 2);
}
0417デフォルトの名無しさん
NGNG>return (x *= 2);
オマエモナー
0418デフォルトの名無しさん
NGNGもしそうなら、書き込んでる内容はネタだよね?
マジなら日本のソフトウェア産業の状況はこんなにもお寒いのか。
0419デフォルトの名無しさん
NGNG今年入社したのかもしれないじゃん。
未経験OKのところなんていくらでもあるし・・・
0420デフォルトの名無しさん
NGNG俺 が 辞 め さ せ て や る
0422デフォルトの名無しさん
NGNGそこに入っている情報は保持できないから。
毎回、その関数に入った時に、初期化されるからね。
0423while
NGNG0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNGいや、問題は、無用に使わなくなる変数を更新するという不自然さを、
短く書けるから、とかの萎える理由で正当化してるところだ
0426デフォルトの名無しさん
NGNGreturn ++p;
return p+1;
文字数なら同じだぞ(笑)
0427デフォルトの名無しさん
NGNG俺も書いてから気付いた。。。俺なら "p + 1" と書くから錯覚したらしい。
0428デフォルトの名無しさん
NGNG誰だろう?
浮いてる・・・
0429デフォルトの名無しさん
NGNGスペースをいれるくせをつけておくと *x/*y とかやった時にはまる可能性がなくなるらしいな(ワラ
まあ文字色を変えてくれるエディタを使っていれば問題はないんだけど。
0430デフォルトの名無しさん
NGNGそうか ? >>399 には、>>401 って言うレス ? が付いてるぞ。
どっちかって言うと、>>397 の方が浮いてる気が...。
0431デフォルトの名無しさん
NGNG>>430 どきどきっ
0432デフォルトの名無しさん
NGNGレス一連を見ると自動変数を返しているだけで
それ以上なにもないのに、そのことで
なぜ深刻なバグがあるのだ?
関数内でmallocしていて
関数の呼出後freeする処理というのなら
まだわかるが、でもポインタののインクリメント
も必要ないだろうし、mallocもしてなさそうだし。
0433デフォルトの名無しさん
NGNG異常なコードを書いてみたっていう感じか
0434デフォルトの名無しさん
NGNGなるへそ、433のことを踏まえて
もう一回読むと>>386のいうシステム
とは作成したプログラムのことではなく、
OSとかコンパイラのことか。
0435デフォルトの名無しさん
NGNG面白いスレになってきたみたいだな。
なんか初心者やポインタにつまずいている
香具師の頭の中が見えてきたみたいだ。
以外と良スレになってきた。
やっぱコード等、具体的な材料(燃料?)がないと
いくら例えても分からないだろうな。
ただ、whileの言動は注意しないとな。
0436デフォルトの名無しさん
NGNGなんでポインタ配列がダブルポインタ(そもそもそんな言葉があるかどうか知らないが)なんだ?
ポインタへのポインタ(**)をダブルポインタと言うのならわかるけど。
0437デフォルトの名無しさん
NGNGポインタと配列に関するほとんどの勘違いが盛り込まれているからな。
0438デフォルトの名無しさん
NGNG今の所ただ単に釣られただけのような気がする。
0439デフォルトの名無しさん
NGNGポインタへのポインタと思ったの
じゃないのか?
0440デフォルトの名無しさん
NGNGCやポインタ知らないで、ここまで
書けるのはあやしい。
本当だとしても、燃料またはスレの
イメージ改善としての役割は十分
果たしたように思える。
0441436
NGNG鬱だ飛び降りよう。
0442デフォルトの名無しさん
NGNGくだらねっ
0443デフォルトの名無しさん
NGNGという所がいかにも巧妙だ
0444デフォルトの名無しさん
NGNGlong intと略さずに書く珍しい人なのね。
0445デフォルトの名無しさん
NGNGそれをいうなら
unsigned long
の方がいいのでは。(アドレス値だから)
0446デフォルトの名無しさん
NGNG使おうと思ったのですが、できないので
class foo
{
...
foo *pParent;
foo **pChild;
...
};
としたんですが、vectorだと何でできんのですか?
0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNG0449デフォルトの名無しさん
NGNGそれは
「ストーカー」
である。
0450デフォルトの名無しさん
NGNG基本的には、オブジェクトを指しているものだが、何もさしていない場合もある。
それをブラブラティムポという。
0451デフォルトの名無しさん
NGNG人はそれをtwin timtimと呼ぶ。
0452デフォルトの名無しさん
NGNG基本的には、オブジェクトを入れているものだが、何も入れてない場合もある。
それをガバガバマンポという。
0453デフォルトの名無しさん
NGNGtype *(p[]);だと意味不明
つーかpでないの?
0454デフォルトの名無しさん
NGNGそれは、普通の変数の説明だと思われ。
0455デフォルトの名無しさん
NGNGtype *(p[]);
↓
type* p[];
0456デフォルトの名無しさん
NGNGそれは
「C言語最大の汚点」
である。
0457デフォルトの名無しさん
NGNG大抵うまくいくが、たまに(しょっちゅう?)バグる
0458デフォルトの名無しさん
NGNG「ポインタ周りの設計」でなくて?
0459デフォルトの名無しさん
NGNG滅多にバグらねぇよ…。
0460デフォルトの名無しさん
NGNG0461デフォルトの名無しさん
NGNGなんかスローガンみたいだけど。
0462デフォルトの名無しさん
NGNGせめて、「先を要素とみなすポインタ」と「先を配列とみなすポインタ」を
言語の上で区別すればバグが減る気がする。気がするだけだが
0463デフォルトの名無しさん
NGNGint array[10];
int* p = &array[5];
な時はどうします?
配列へのポインタと見なすか,変数へのポインタと見なすか。
>>461
そうなの?
0465462
NGNG0466462
NGNGchar *p = &s[1];
char just *jp = &s[1];
... *p ... // アリ
... p[1] ... // アリ
... *jp ... // アリ
... jp[1] ... // ナシ
みたいな
0467デフォルトの名無しさん
NGNGjustってのがそのためのキーワード?
0468462
NGNG0469デフォルトの名無しさん
NGNGlong a = 0xFF00FF00; // sizeof(long)==4
char* p = (char*)&a;
cout << p[0] << endl; // 1バイトずつ処理
cout << p[1] << endl; // 1バイトずつ処理
cout << p[2] << endl; // 1バイトずつ処理
cout << p[3] << endl; // 1バイトずつ処理
↑の例は「例えば」だよ。
でも,仮にjustが有ったとしても”Cだと”配列のインデックスを超えてアクセスしてしまう罠
0470デフォルトの名無しさん
NGNG0471デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNGAPIの裏に隠蔽されたようなオブジェクトは結構守れると思う。
あと、バイト列の切り分けについては、別のシンプルで安全な方法を提供
するってのもいいのでないかと
0473462
NGNG0474デフォルトの名無しさん
NGNG0476デフォルトの名無しさん
NGNGaa[2][3] : char; // 2次元配列
pa[3]* : char; // ポインタの配列
aa*[3] : char; // 配列(or 2次元配列の先頭配列)へのポインタ
void (*signal (int sig, void (*func) (int))) (int);
↓
signal (sig : int, func* (int) : void)* (int) : void;
signal // 関数
signal (..) // 引数をつけて呼ぶ
signal (..)* // 帰ってきたアドレスを参照する
signal (..)* (...) // それがまた関数なので呼ぶ
signal (..)* (...) : void // 戻り値はなし
・・・わかりやすい。(事にしてほしい)
0477デフォルトの名無しさん
NGNGvoid (*p) (int) = signal (...);
↓
signal (...) =: p* (int) : void;
気持ち悪いw
0478デフォルトの名無しさん
NGNGsignal(...) =: p : *(int)void; // 参照・適用すると戻り値なし、という変数 p
0479デフォルトの名無しさん
NGNGaa : [2][3]char; // 2次元配列
pa : [3]*char; // ポインタの配列
aa =: ap : *[3]char; // 配列(or 2次元配列の先頭配列)へのポインタ
signal : (sig : int, func : *(int)void)*(int)void;
signal(...) =: p : *(int)void; // 戻り値なくintをとる関数へのポインタ
0480デフォルトの名無しさん
NGNG0481デフォルトの名無しさん
NGNG0482デフォルトの名無しさん
NGNG0483デフォルトの名無しさん
NGNGprintln ("Hello, C* world!");
return 0;
}
0484デフォルトの名無しさん
NGNG如きで偉そう
40代
0485デフォルトの名無しさん
NGNGprintln ("Hello, C* world!");
return 0;
}
0486デフォルトの名無しさん
NGNGprintln ("Hello, C* world!");
return 0;
}
0487デフォルトの名無しさん
NGNGargvの型が分かりにくい。
argvはcharポインタへのポインタなので
char** argv; // type identifer
と書く方が自然に見える。
0488デフォルトの名無しさん
NGNGargv : []* char
ポインタの配列であることが一発でわかりますが、何かw
(配列要素 [] を間接参照 * すると、char が得られる、という順序)
まあ、そういう遊びなんでひとつ。。
0489デフォルトの名無しさん
NGNG0490デフォルトの名無しさん
NGNG変数君はポケットを持ってるよ。
でも体が弱くて自分じゃ遊びに行けないんだ。
何かをあげるとポケットに入れてるから
「今ポッケに何が入ってる?」って聞くと教えてくれるよ。
ポインタ君はポケットを持ってないんだ。
でもとっても元気で「○歩歩け!」って言うと言った歩数だけ歩くし、
住所を教えてあげれば、すぐにそこへとんでっちゃう。
それに自分の居るところの住所をいつでも分かるという特技があるんだよ。
とても良くできた地図でも持ってるのかな?
ポケットが無いから物をあげても「僕持てないよ!」って言うし
何を持ってるか聞いても「僕何も持ってないよ!」って答えるんだ。
だから、そんな時はこんな風に言ってあげて。
「今居るところに置いて良いよ」「今居るところに何がある?」
でもポインタ君も地面に物を置くのはあんまり好きじゃないから
同じところに変数君が居たら、こっそり変数君のポケットを使っちゃうんだ。
変数君の持ってる物と、ポインタ君の居るところにある物が
同じになっちゃうことがよくあのはこういう訳なんだ。
0491デフォルトの名無しさん
NGNG0492デフォルトの名無しさん
NGNGcout << *p ; // この * は
意味が違うだろ。
0493デフォルトの名無しさん
NGNGそれだったら宣言では*も[]も()も前置な方が読みやすいかも。
変数を使うときは*も[]も()も後置で。
double(int)*[10] func; // intをとりdoubleを返す関数へのポインタ10個の配列
func[0] => double(int)*
func[0]* => double(int)
func[0]*(0) => double
0494デフォルトの名無しさん
NGNGchar timpo,*small;
timpo = 0;
*small = 0; // なぜだめなんだ?
char* timpo,small;
timpo = small; // なぜだめなんだ?
char* timpo="small";
char* small;
small="Timpo"; //なぜだめなんだ
0495デフォルトの名無しさん
NGNGってのは、「p に * をつけると char が得られるような p」という、
使い方の例示になっているんだよ。
> char* timpo="small";
> char* small;
> small="Timpo"; //なぜだめなんだ
これは駄目じゃなくない?
0496デフォルトの名無しさん
NGNG大丈夫みたいですね。勉強しはじめなのでスマソ。
ウキ━━━━━━━━━《゚Д゚》━━━━━━━━━ッ!!!!!
マスマス、ワケワカンネッ!!(´・ω・`)ショボーン
0497デフォルトの名無しさん
NGNG普通「ポインタ型の"変数"」と「ポインタ」のどちらも
単に「ポインタ」とよばれている。
> char timpo,*small;
> timpo = 0;
> *small = 0; // なぜだめなんだ?
timpoは「変数」、smallは「ポインタ型の"変数"」。
この三行ではsmallは有効な「ポインタ」を保持していないため
*(間接演算子)を使ってsmallの保持する「ポインタ」が指す領域に
値を格納することはできない。
> char* timpo,small;
> timpo = small; // なぜだめなんだ?
timpoは「ポインタ型の"変数"」、smallは「変数」、よって代入は不可。
&(アドレス演算子)を使い timpo = &small; とすれば
timpoにsmallの「ポインタ」が代入され、
timpoはsmallへの「ポインタ」を持った「ポインタ型の"変数"」となる。
> char* timpo="small";
> char* small;
> small="Timpo"; //なぜだめなんだ
可能。一行目のtimpoと三行目の"Timpo"は別物である。
timpoは「ポインタ型の"変数"」、"Timpo"は文字列リテラル。
文字列リテラルはメモリ上に固定的に配置され、式中では先頭へのポインタを返す。
よって三行目では「ポインタ型の"変数"」であるsmallに
"Timpo"の「ポインタ」が格納されることになる。
(printf( "small = %s", small ); の実行結果は small = Timpo )
0498デフォルトの名無しさん
NGNGBも必要なのだが、放って置くとBもコピー機を買ってきそうなので、
AはBに「ここにあるから使えれ」と教えてあげた。
コピー機(何でもいいけど)がデータ、「ここにあるから使えれ」がアドレス。
・・・・・・と知り合いに教えた事がある。これ、合ってる?
0499デフォルトの名無しさん
NGNGポ イ ン タ は テ ィ ム テ ィ ム
だと。
0500500
NGNG0501デフォルトの名無しさん
NGNGメモリー読んだ値を
1.:そのまま返す。
2.:アドレスとして認識する。
0502デフォルトの名無しさん
NGNGムダムダムダァ。
0503デフォルトの名無しさん
NGNG0504デフォルトの名無しさん
NGNGAとBが何に対応するか入れたほうが良い。
0505デフォルトの名無しさん
NGNG田代風に書いてた人がいたよ。
変数をスカートにたとえてw
0506昔話風に
NGNGある朝、いつものように、お爺さんは山へ芝狩りに、お婆さんは川へ洗濯へ行きました。
川でお婆さんが洗濯をしていると、
川上から大きな桃がどんぶらこ、どんぶらこと流れてきました。
お婆さんは何とかこの桃を手に入れようと、頑張りました。
・・・ダメでした。桃は、ゆっくりと川下へ流れて行きました。
日も暮れ、山から帰ってきたお爺さんに、お婆さんは川で起きた出来事を話しました。
「うまそうじゃった・・・」ガックリと膝をつき、うなだれるお婆さんに、お爺さんは言いました。
「それは残念だったのう。なに、桃が食いたきゃワシが山から取ってきてやるわい。」
お婆さんは答えず、まるで甲子園で負けたピッチャーのようにワナワナと震えています。
「のう婆さん。それより飯・・・」
おなかの空いたお爺さんは、空の鍋を心配そうに見つめています。
すると、お婆さんが顔を上げ、ぽつり と言いました。
「・・・・・・まだ、間に合う。」
「え?」
「あの流れなら、まだ川を流れて居るじゃろう。」
「・・・・・・・・・。」
沈黙が家を包みました。ふくろうの声が、刻を刻みます。
その重圧にお爺さんが耐えられなくなった頃、お婆さんは言いました。
「・・・取って来い。」
「な、何をじゃ?」
「爺さん、桃ぉ・・・、取って来い。」
「え・・・ えぇ!?」
0507昔話風に
NGNG驚くお爺さんをよそに、お婆さんはナタを持ち ゆらり と立ちあがりました。
「どっちがいい・・・」
問いかけるお婆さん。
「ど、どっちって何じゃ?」
聞き返すお爺さん。
「このナタにぶった切られるの。 桃と てめぇと どっちが良いんじゃ!? あ゛!?」
すごむ お婆さん。
「ひっ!?」
お爺さんピンチ。
「さぁ、どっちなんじゃ!?」
追い詰めるお婆さん。
「ひー!?」
お爺さんピンチ。
「”ひー” じゃわかんねぇじゃろがぁぁぁ!!」
着物を脱ぎ捨て、叫ぶお婆さん。
「ひーーーーー!!」
お爺さんピンチ。
「桃かぁぁぁぁぁぁ!! それともぉぉぉぉ、てめぇかぁぁぁぁぁあ!!」
うねる垂れ乳。
「ひ、ひーーーーーーーーッ!!」
お爺さんp
0508昔話風に
NGNG0509デフォルトの名無しさん
NGNG0510デフォルトの名無しさん
NGNGstruct Female A子;
君.c:
struct Female *君の彼女 = &A子;
:
:
友達に紹介(君の彼女); // 紹介しただけ
君の彼女->デート(); // フォールト発生!
友達.c:
struct Female *友達の彼女 = NULL;
友達に紹介(struct Female *kano)
{
友達の彼女 = kano; // お前のモノは俺のモノ
:
:(*kano を貪る)
:
Free(kano); // 遠くへ捨てる
}
0511デフォルトの名無しさん
NGNG494じゃないけどさ。
「char *pは,p に * をつけると char が得られるような p」って説明よく見るし
意味的には正しいけど,決して分かりやすいとは思わないな。
だって,「*pはchar型」とは言わないだろう?
「pはchar*型」って言わないかい?
だとしたら,「char* p(charへのポインタ型であるp)」の方が分かりやすいと思うんだが。どうか?
0512デフォルトの名無しさん
NGNGここはObserverパターンにして簡潔にっと。
0513デフォルトの名無しさん
NGNG何も難しくない
0514デフォルトの名無しさん
NGNGアセンブラ間違い?
0515デフォルトの名無しさん
NGNGアセンブラって何か知ってる?
0516デフォルトの名無しさん
NGNGあなたの方こそ大丈夫?(w
0517デフォルトの名無しさん
NGNG機械語とアセンブラはあまりに性質が違うもので、、
0518デフォルトの名無しさん
NGNGほぼ1対1で翻訳できるんだから同義と考えて差し支えないと思うが。
0519デフォルトの名無しさん
NGNG0520デフォルトの名無しさん
NGNGま た >>519 み た い な お 爺 さ ん が 出 て き た よ !
お前らはhttp://pc.2ch.net/i4004/に篭ってろヴァカ
0521デフォルトの名無しさん
NGNGこわがりすぎー
0522↑
NGNG0523デフォルトの名無しさん
NGNG一度ハンドアセンブルしてみなさい。
違いが判るから。
0524デフォルトの名無しさん
NGNGいいけど、そすっと配列や関数ポインタが絡むとワケワカになる。
0525デフォルトの名無しさん
NGNGどんな喩え方をしてやっても無駄、ということだな。
0526デフォルトの名無しさん
NGNGビデオテープ:メモリ
ポインタ:テープの位置と何本組かの情報ファイル。
ポインタのポインタ:上記のファイルのインデックス。
参照・操作処理:
ポインタを使う:ビデオライブラリのテープをそのまま見る。
マスタテープを編集
値渡し:ダビングして見る。
ダビングテープを編集
ってのはどうかな?
0527デフォルトの名無しさん
NGNG配列はポインタのシンタックスシュガーみたいなもんだろ?
0528デフォルトの名無しさん
NGNGarrya[3] = *(array+sizeof(int)*3)
0529デフォルトの名無しさん
NGNG0530デフォルトの名無しさん
NGNGみたいなものではない。
シンタックスシュガーって言いたいだけですか?
0531デフォルトの名無しさん
NGNGstruct size{ int x, y; };
int size::*p = &size::x;
を使ってるコードのデバグさせて混乱に陥らせている私は
逝ってよしでしょうか?
0532デフォルトの名無しさん
NGNG何の意味があるの?
何をそれで表現しようとしてるの?あなたは。
怒り?悲しみ?喜怒哀楽?
0533デフォルトの名無しさん
NGNGポインターより、複雑な論理演算子マジック(?)の方が難しい。でも
未だにファイル入出力のポインターが理解できない!mallocって何だ?
0534デフォルトの名無しさん
NGNGmallocは知ってるけど、それを使わずにプログラム作れてたらからまだ使ったことはない。
0535デフォルトの名無しさん
NGNG確かに解ってなさそうだ
0536デフォルトの名無しさん
NGNG配列とポインタを混同するなって言う人が見たら嘆くね。
0537デフォルトの名無しさん
NGNGVBにはポインタがないから、回りくどいコーディングが必要になるので不便だ。
0538デフォルトの名無しさん
NGNG同じ理由でJavaもC#も回りくどいコーディングが必要になるってか?
ウソつくな。
0539デフォルトの名無しさん
NGNG0540デフォルトの名無しさん
NGNG使わなければ出来ない処理があるというCの制限のせい。
すべての配列の操作を配列として扱うことが出来る言語では混同しない。
0541デフォルトの名無しさん
NGNG小さな配列しか使ったことがないらしい。
漏れもないから、malloc不要。
0542デフォルトの名無しさん
NGNG>使わなければ出来ない処理があるというCの制限のせい。
まあいいけど。ほんとは間違い。
0543デフォルトの名無しさん
NGNG0544デフォルトの名無しさん
NGNG0545デフォルトの名無しさん
NGNGCはポインタ演算子を使えば何でも出来るね。ポインタ>配列だ!
それに自己参照構造体を使えばリスト構造も作れるし・・・。
0546デフォルトの名無しさん
NGNG唯一の例外は固定のアドレスを直接参照する必要があるOSやドライバを作るときだけでしょう。
アセンブラを使えばなんでも出来る。ゆえにアセンブラ>C++(他すべて)なんて
アフォみたいなこと言ってはいけません。
0547デフォルトの名無しさん
NGNG(´,_ゝ`)プッ
死ねあふぉ。
0548デフォルトの名無しさん
NGNGだから「みたいなもん」って書いてあるんだろう?
#sizeofの結果が違うとか言いたいんですよね?
0549デフォルトの名無しさん
NGNGだから「みたいなものではない」って書いてあるんだろうw?
0550デフォルトの名無しさん
NGNG>逝ってよしでしょうか?
こんな意地悪は逝ってよしです(w
>>532
>何の意味があるの?
ちゃんと勉強しようね、メンバポインタって物だよ。
イベントドリブン式のプログラムを書くときの強力な武器になる。
デリゲートが良いと感じたのならアタックしてみれ。
0551デフォルトの名無しさん
NGNG変数は引出しです
変数の引出しはそのまま使えば中身が見れます
前に&をつけると引き出し番号が分かります
ポインタも引き出しですが,変数とは振る舞いが違います
ポインタの引出しはそのまま使うと他の変数の引き出し番号が分かります
前に*をつけると他の変数の中身が見れます
前に&をつけるとポインタの引き出し自体の引き出し番号が分かります
そして配列は連続した引出しです
最後に参照はポインタの引出しと変数の引出しを中でくっつけたものです
・・・あまり例えになってませんねごめんなさい
0552デフォルトの名無しさん
NGNG>イベントドリブン式のプログラムを書くときの強力な武器になる。
はあ?
0553デフォルトの名無しさん
NGNG0554552 == 532
NGNGおいおい。
0555554 == 553
NGNGおいおい。
0556555 == 554
NGNGおいおい。
05571000
NGNG05581001
NGNGもう書けないので、新しいスレッドを立ててくださいです。。。
0559デフォルトの名無しさん
NGNG0560デフォルトの名無しさん
NGNG0561デフォルトの名無しさん
NGNG552 == 554 == 600
0562デフォルトの名無しさん
NGNG> 例えば、a[i]を*(a+i)と表現できるように、配列として[]を使わなくても
> Cはポインタ演算子を使えば何でも出来るね。ポインタ>配列だ!
> それに自己参照構造体を使えばリスト構造も作れるし・・・。
言いたいことはわかるが、それって「goto 文 (と if 文) 使えばどんな制御構造も実現できるから、goto > while/do/switch だ。」と言ってんのとあまり変わらないぞ。
何でもできるから偉いと言うわけじゃないことぐらい、理解しろよ。
0563デフォルトの名無しさん
NGNG>Cはポインタ演算子を使えば何でも出来るね。ポインタ>配列だ!
ということはポインタとして表されていて、配列で表せないものがあるとい
う事だよね?
あまり詳しくないんでイメージできない、誰か例を挙げてくれんかな。
0564デフォルトの名無しさん
NGNGおえ
0565デフォルトの名無しさん
NGNGint a[10]; // sizeof(int)*10バイト確保
a[3] // = *(a+3)
配列はメモリを確保してポインタでアクセスできるんだろ。
比較するようなもんじゃないよ…
0566デフォルトの名無しさん
NGNG抽斗には番号以外に名前がついてる。
そんで、抽斗あけたら中に紙が入ってて、「X番の引き出しをあけれ」とか書いてるのがポインタ用抽斗。
0567デフォルトの名無しさん
NGNG> 普通に抽斗の例で解りやすいと思う。
動きとしては合ってるけど、何でそんな引出しが必要なのかがわからん。
0568デフォルトの名無しさん
NGNG> ということはポインタとして表されていて、配列で表せないものがあるとい
> う事だよね?
本当にできないのは >>546 に書いてある H/W アドレスとかだな。
あと、C/C++ では動的配列だな。
それ以外の奴は、効率を考えなければ大概配列で何とかなる。(ここでいう効率は、プログラムの作成時と実行時の両方を含むよ。)
0569NONAME
NGNG一般的な物として例えるのが難しいね…
封筒の中に紙が入っていて、紙に本当の場所が書いてあるという感じか。
もしくは転送郵便。
なぜこの形式のほうが効率が良いかというと、そういうものだから仕方が無い(w
0570>>37じゃねーけど
NGNG> なぜこの形式のほうが効率が良いかというと、そういうものだから仕方が無い(w
頼むよ、こんなアフォな書き込みしかできないんなら、でてくんな。
0571>>571じゃねーけど
NGNG苦笑して放置してやれ。
0572デフォルトの名無しさん
NGNGポインタだろうがlongだろうが変数は変数だ。
それ以上でも以下でもない。
それより_int64ってなんでつか?
0573デフォルトの名無しさん
NGNG0574デフォルトの名無しさん
NGNGポインタ
□ → □ → ■実体
ポインタ
ポインタ
□ → □ → □ → ■実体
ポインタ ポインタ
ポインタ
0575デフォルトの名無しさん
NGNG■
■←□(p--後の位置)
■←□ポインタp
■←□(p++後の位置)
■ ポインタは、ポインタが指す実体のサイズにあわせて加減算される
0576デフォルトの名無しさん
NGNG┌─┐
│□→■(■型のポインタと、■型の実体)
│□→■
└─┘
構造体に含まれ、構造体を指すポインタ
┌─┐
│□→┌─┐
│■││□│(構造体型のポインタと、構造体の実体)
└─┘│■│
└─┘
0577デフォルトの名無しさん
NGNG0578デフォルトの名無しさん
NGNG┌─┐
│□→ NULL (指すものが何も無い場合、NULL値であると呼ばれる)
┌─┐│□→
│□→└─┘
│□→┌─┐
└─┘│□→
│□→ この先にはさらに構造体を追加できあます
└─┘
データが無いツリーは、通常つくられることはない
でもサンプルとしては、イイ!
0579デフォルトの名無しさん
NGNGfreeはどうやって知るんですせぅか?
char *ptr;
long addr;
ptr = malloc(1028);
addr = ptr;
として、addrを所持して
べつのところで
char *ptr2 = addr;
free(ptr2);
とかしていたら、
そのうちにセグメントエラーというようなことに
なりますのでしょうか?
0580579
NGNGタイトルを見て、
ぽいんたーを上手に "教えて" みよう
だと読み違えました。
ポッカリミスでした。 てへっ。
0581デフォルトの名無しさん
NGNGいや、俺のほうこそスレ違いだたーよ。
誤解招くようなコピペなんかして悪かったな。
0582579
NGNG本の隅っこの方によくついてるあれ...
なんていったっけ...?
とにかく、あれみたいなもん。
0583デフォルトの名無しさん
NGNG0584デフォルトの名無しさん
NGNG実際の局名はテレ東とか日テレとかだけど、んなもんいちいち覚えてらんねぇ。
0585デフォルトの名無しさん
NGNG0586デフォルトの名無しさん
NGNGポインタで悩む脳味噌がある事が信じられない
0587デフォルトの名無しさん
NGNGお前の人生なんてポインタだよ。
0588デフォルトの名無しさん
NGNG!!!ポインタで悩む脳味噌がある事が信じられない!!!
あるならそれは猿以下だな。
0589デフォルトの名無しさん
NGNG0590デフォルトの名無しさん
NGNG0591デフォルトの名無しさん
NGNG0592デフォルトの名無しさん
NGNG0593斎藤
NGNGいいか?若造ども。コンピュータの基本はアセンブラなんじゃよ。
お前たち、ハードの内部で何が起きてるかわかってるのか?最近ジャブだのパーラだの、色々な言語が流行ってるみたいだが、あんなチャラチャラしたもんクソじゃ。
次から次へと出てきてすたれるのじゃ。Cのポインタがわからん奴はウチの会社に来なはれ。みっちりZ80で3年間修行させてやる!
修行を終えたお前さんは、もう地に足の付いた一流のエンジニアの仲間入りじゃ。
0594デフォルトの名無しさん
NGNG0595デフォルトの名無しさん
NGNG0596デフォルトの名無しさん
NGNGで、死体は魂が入らないと動かないだろ。
魂が入ってはじめて人間と呼べるわけだ。
ポインタを渡すってことは、この死体をやりとりするわけ。
で、アドレス演算子&は、人間から魂を取り出す作業。つまり死体にする作業だっ・・・!
*は死体に魂を吹き込む作業。つまり人間にするってこと・・・!
int a;
aは人間だ。
&aは死体。
int* b;
bは死体。
*bは人間。
a=b 人間は死体ではないからエラーっ・・・!
a=*b *bは人間だから人間=人間なのでOK・・・!単純明快・・・っ!!
クズども・・・これでわからなければ・・・一生おまえたちは負け組み・・!!生きていてもどうしようもないカスだ・・・!ゴミ以下の・・・・!!
0597デフォルトの名無しさん
NGNG0598デフォルトの名無しさん
NGNGで、ビルゲイツは金が入らないと動かないだろ。
金が入ってはじめて人間と呼べるわけだ。
ポインタを渡すってことは、このビルゲイツをやりとりするわけ。
で、アドレス演算子&は、人間から金を取り出す作業。つまりビルゲイツにする作業だっ・・・!
*はビルゲイツに金を吹き込む作業。つまり人間にするってこと・・・!
int a;
aは人間だ。
&aはビルゲイツ。
int* b;
bはビルゲイツ。
*bは人間。
a=b 人間はビルゲイツではないからエラーっ・・・!
a=*b *bは人間だから人間=人間なのでOK・・・!単純明快・・・っ!!
クズども・・・これでわからなければ・・・一生おまえたちは負け組み・・!!生きていてもどうしようもないカスだ・・・!ゴミ以下の・・・・!!
0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNG左手の水平線から右手の水平線まで隙間なく尻が並んでいた。
圧巻する光景だ。
ふと気付くと向こうからポインタが伸びてきた。
ポインタは長く伸びた腕の形をしていて、その先では手が結ばれている。
ただ人差し指だけはしっかりと前に突き出していて、まるで何かを貫こうと
しているかのようである。
次の瞬間ポインタはすらすら伸びると狙っていたかのようにある尻の中に
吸い込まれていった。
ズブッ「…うぐぅ」
茶色く染まった太い人差し指が印象的な出来事だった。
0601デフォルトの名無しさん
NGNG0602デフォルトの名無しさん
NGNGコピペそれともオリジナル?
オリジナルだったらやるねえ。
0603デフォルトの名無しさん
NGNG自演ウザイよ。
0604デフォルトの名無しさん
NGNG0605デフォルトの名無しさん
NGNGポインタがわからないから面白くない
0606デフォルトの名無しさん
NGNGふ〜〜〜ん、じゃあんたは >>600 は「やるねえ」と思ってるわけだ、「自演」ならまだ理解できるけど、想像を絶する奴だな。
0607デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNG尻が出てこなければの話だが。
0609デフォルトの名無しさん
NGNGこういうファンタジーを嗜むことができるような数奇者に
なるべし。
0610デフォルトの名無しさん
NGNG0611デフォルトの名無しさん
NGNGみなさんはメモリをイメージする時、頭の中は横に並んでる?それとも縦?
こんな感じか↓
□□□□□□□□□□□□□□・・・
↓こんな感じか
□
□
□
□
□
□
□
・
・
・
0612デフォルトの名無しさん
NGNG使っているマシンのアライメントの問題もあるんだけど。
□□□□
□□□□
□□□□
・
・
0613デフォルトの名無しさん
NGNGで□そのものは別にイメージする。
構造体1個だと定義のimageで
□
□□
□□□□□□□□
・
・
・
みたいな感じだ。
0614デフォルトの名無しさん
NGNG0615デフォルトの名無しさん
NGNG書くときは縦かな
0616デフォルトの名無しさん
NGNGさっき自動販売機でジュース買ったら、
これってポインタかもって....
配列もあるし,,,,
頭悪くてすまん。。。。。
0617デフォルトの名無しさん
NGNGつまらんと判断する能力と、優れたものを書く能力は違うと言うことぐらい理解しろ、ヴァカ。
0618デフォルトの名無しさん
NGNG0619デフォルトの名無しさん
NGNGなーんか、わかりかけたような気がするんだけど・・・・
できれば、char版で作り直してほすぃ。。。。
おながいしますです。
0620デフォルトの名無しさん
NGNG漏れは
□□□□□□□□□□□□□□□□□□□□□□□□□
だね。よく資格試験の解説書は2次元で書いてあるが、それではわかり難い。
漏れの恩師が教えてくれたメモリのイメージっつうのがあって、それは、
メモリ内は一直線に並んだ廊下にウサギ小屋が無数に並んでいて、その各
オリには番号が順にふってある。その番号のドアを開けたとき、白いウサギが
飛び出してくるか、黒いウサギが飛び出してくるかっていう仕組みだ。
一つののウサギを指し示すとき、ウサギの名前を書いたプレートを立てるか、
オリにつけられた番号で示すかの話。
こう考えればポインタ演算もわかり易いと思う。
ポインタが難しいと悩むお前ら、メモリはただのウサギ小屋だ。
0621デフォルトの名無しさん
NGNGそこまでせな理解できんかったんかい!
0622デフォルトの名無しさん
NGNGええはなしやなー。で、どっちのウサギが美味かった?
0623デフォルトの名無しさん
NGNG0624デフォルトの名無しさん
NGNG思い出せない...
そこがどこなのか...
なぜそこに炒るのか...
おれはだれなのか...
おれには記憶がなかった...。
ただ、首にかけられた札に書かれた文字、
"kokyaku_type"
それがおれの名前だと言うことだけはわかった。
ほかにも記号と変な数字が書かれていた。
意味はわからないが、とにかくおれは歩き出した。
歩き出して気づいたが、まわりにも大勢人がいた。
皆、無表情なまま立ち尽くしている。
そして、そいつらの首には札がさげられていた。
さらに歩いていくと、おれの札に書かれた数字と同じ場所におれとよく似たやつが立っていた。声をかけようと近づいてみると、そいつもおれの方に近づいてきた。
おれは怖くなっておもわず声をかけたがへんじはない。
無表情のまま、こちらに近づいてくる。
そして...!
そいつはおれの所へくると、おれのケツの穴に吸い込まれていった。
...おれのなかに記憶が蘇った。
そう、おれは変数4。
すなわち、kokyaku_type == 4だったんだ!
0625デフォルトの名無しさん
NGNGそうですがなにか?
0626アフォルトの名無しさん
NGNG明後日の方向にレスなさってますか?
0627デフォルトの名無しさん
NGNG0628_
NGNG0629デフォルトの名無しさん
NGNG思ったんだけど今一ポインタが理解できない。
具体的に
関数呼び出し時の変数操作ができる。
メモリのアドレスを保持している。(&で取り出し)
くらいの理解しかできないよ。
どう役に立つのかを是非教えてください。
正直C++のクラス概念の方が理解するのに楽だった。
0630デフォルトの名無しさん
NGNGポインタでぶん回し→ナイフで野菜切る
関数にオブジェクトを参照渡し→鍋に入れて火をかける
関数にポインタ渡し→ナイフに刺して火にくべる
戻り値を参照で受け取る→フォークで口に運ぶ
戻り値をポインタで受け取る→ナイフで刺して食う
つーか腹減った。
0631デフォルトの名無しさん
NGNGプログラム上で明確に区別されてないのがわかりにくい原因じゃないかな
x = 1 と x == 1 で x の意味が違うでしょ
そのへんの区別がちゃんとできればポインタもわかると思うよ
0632デフォルトの名無しさん
NGNG0633デフォルトの名無しさん
NGNG0634デフォルトの名無しさん
NGNG0635デフォルトの名無しさん
NGNG0636真実
NGNG資金が底をつけば終わり。あまり知られていないことだが、
2ちゃんねる内部関係者によると今、大手通信会社系が調査費名目で資金提供している。
だが、それが止まれば続けてはいけないだろう」と証言する。
2ちゃんねるが判決によって力を失った場合、資金提供の打ち切りも予想される。
http://ascii24.com/news/reading/causebooks/2002/07/01/636911-000.html
以下、別の記事のキャッシュ http://memo2ch.tripod.co.jp/article.html
2ちゃんねるに近いあるインターネット関連会社の社長は、2ちゃんねるの幹部から得
た話として証言する。「2ちゃんねるは、運営者や幹部などがそれぞれ別々に会社を
作りカネの流れを見え難くしているが、実際の資金源は複数の大手通信会社系からの
調査費名目のカネ。月額で計約700万円と言い、年間にすれば1億円近く。額はともあ
れ、これは通信会社系的には、ぼう大なトラフィックを調査すると言う表向きの理由
が一応は立つ。自社系に都合の悪い書き込みがされた時に優先的に削除してもらうこ
とも期待している」と前置きし「通信会社系の削除の期待も含めて、2ちゃんねるは
総会屋と同じになっている」と言うのだ。
その具体的な理由として社長は、こう話す。「2ちゃんねるはボランティアの削除人
が書き込みをチェックして、好ましくない書き込みを一所懸命削除している、という
ことになっているが、あれはウソ。削除人には給料が支払われ、その給料の原資と
なっているのが、まずいことを書き込まれた企業が削除要求とともに渡す裏金。これ
はまさに、総会屋の構図そのものだ。これまで裁判になっているのは金額で折り合え
なかったり、裏金を出さない強い態度の企業とだけだ」
0637デフォルトの名無しさん
NGNGすばらスィ!
確かにそのような具体例を挙げて意味を明確にすれば、
初心者にも理解しやすくなるかもしれませんねえ。
0638最近おりこうさんが多くて・・・
NGNGx の意味は同じだが・・・?
0639最近おりこうさんが多くて・・・
NGNGJavaで言うところのオブジェクトは全てポインタなの。
基本型はなぜか値コピーしとるだろ?
Cでは、全ての変数が(型に係わらず)コピーして使うように
統一されているわけ。
Javaのように使うためにはポインタが必須なわけよ。
このあたり、Javaのほうがややこしくないか?
0640デフォルトの名無しさん
NGNGポインタの話とは遠くなるが。
あの Smalltalk でも代入はメソッド呼び出しじゃなくて構文だよ。
文脈上の解釈で、シンボルとしての x と、オブジェクトとしての x という違いがある。
0641デフォルトの名無しさん
NGNGx = 1 と x == 1 で x の意味が違う?
両方ともオブジェクトとしてのxだろ?
0642631
NGNGCを想定したコード、というのを明記してなかったので混乱させたかも。
x = 1 の場合の x は "x という変数の名前" (つまりアドレス相当)
x == 1 の場合の x は "x という変数の保持する値そのもの"
という違いがあります。わからなかったらMLの代入構文を見るといいよ。
0643デフォルトの名無しさん
NGNGint x ;
x = 1 ;
x == 1 ; ← 真だろ?
&x == x だとでも?
0644642
NGNGx = 1 と x == 1 でわからないなら
x = x の左辺値と右辺値の違いでもいいよ。
ちなみにMLの代入の型は 'a ref * 'a -> unit。
0645デフォルトの名無しさん
NGNGごめん。マジでわかんね。
左辺値と右辺値の違いが
>>631 そのへんの区別がちゃんとできればポインタもわかると思うよ
につながるのか・・・・
ポインタも左辺値になりうるが・・・?
0646デフォルトの名無しさん
NGNG∧_∧
( ´∀`)< ぬるぽ
0647デフォルトの名無しさん
NGNG0648デフォルトの名無しさん
NGNGint *ptr;
ではなく
int* ptr;
とするべきだ。K&R方式は型の名前と変数の名前がごっちゃになってるからな。
0650デフォルトの名無しさん
NGNGint* i,j ; // 罠
0651デフォルトの名無しさん
NGNG0652648
NGNGプッ。仕様書嫁。
>>650
もっともスマートな解決法は別の行に書く事だが、
「本当のワンライナー」級の解決方法としては
int* i; int* j;
だな。どちらにしても , で区切って一度にすませようとするなという事だ。
0653デフォルトの名無しさん
NGNG0654デフォルトの名無しさん
NGNGint * i;
だったな
0655ダンディ高野
NGNGゲッツ!
0656デフォルトの名無しさん
NGNG意味と表現を近づける為のコストとしては安いと思うけど?
「型 名前」の大原則を破ると意味と表現が離れるからね。
0657650
NGNGカンマで区切るのにはそれなりに意味がある。
配列と、その操作用のポインタとかでは
型を合わせていることを明示するために
int d[100],*p ;
とか書いたりもできるし。
*の位置にはあまり拘らず、どんな書き方でもちゃんと
読めるようになっとくのが正解。
ところで、656はなぜ
「型 名前」にこだわる?
配列宣言とかって int[100] d ; じゃないし。
さらにいえば「配列へのポインタ」とか宣言できる?
0658656
NGNGC/C++ の組込みの配列の書式は頭の痛い問題…というか、C はもう使わないし、
C++ では滅多に組込み配列は使わないのでいいんだけどね。
配列に関しては Java と C# がどういう書式をサポートしているかを考えてください。
C → Java → C# の順で時代の流れです。
> ところで、656はなぜ
> 「型 名前」にこだわる?
逆に何故こだわらないのかを問いたいです。
物事を複雑にする理由がない時は単純な形にしておくべきです。
例えば、以下の例はコンパイルが通らないような気がしますが
int**&** pprppVal; は int へのポインタへのポインタへの参照のポインタへのポインタの pprppVal という変数と読み下せますが、
int **&**pprppVal; は int の(注:ここで意味が一度途切れる)ポインタへのポインタへの参照のポインタへのポインタの pprppVal (ここで最初が int だったという事をもう一度思い出さなければいけない) という変数。となってしまい、
型 名前 のルールの方が直感的だからです。
C++ では関数ポインタと配列以外の全ての要素でこのルールは一定に作用します。
(逆にいえば関数ポインタと配列は正直頭の痛い問題です。)
0659650
NGNG後者は後者の読み方があるということが言いたかっただけ。
文法のとおりに読むことが「直感的ではない」と言い切る
のには流石に抵抗あるぞ。
int * p ;
int * (p) ;
int *p ;
int (*p) ;
int* p ;
(int*) p ;
さて、仲間はずれはどれ?
関数ポインタや配列が読めない時点で656氏の読み方は
破綻していると考えるのも自然かと。
どちらが優れているかの議論は置いといても、
違うスタンスで書かれたソースをうまく読めないのは辛かろう。
0660656
NGNGこれは卑怯な問題だと思う。変数宣言が ( で始まるようにはなってないんだから。
> 関数ポインタや配列が読めない時点で656氏の読み方は
> 破綻していると考えるのも自然かと。
関数ポインタの書式はああするべきではなかったと
カーニハン博士自身が書いている(たしかプログラミング作法だったと、違ったらスマソ)
配列に関しては上記 >>658 の通り、Java で任意、C# で強制された
表記法がより直感的だったと考えるのが適切でしょう。
私も別に「型 名前」を強制はしてません。
ただ、ポインタ理解のハードルの中に、あの type *var という変則的な
(私にとっては変則的だというのはいままでの説明で納得していただけたかと思います。)
記法があるのではないか?と考えているだけです。
0661656
NGNG(ただの意地なので、別にケンカを売っているわけではないです。)
typedef struct{ int v1, int v2 } st;
// ここは中立的に真ん中に書いてみました。
st * src = new st();
st * dst;
// 三つのうちで意図する動作が行われるのはどれ?
dst = (st)src;
dst = (st*)src;
dst = (st)*src;
0662IP記録実験
NGNGhttp://qb.2ch.net/test/read.cgi/accuse/1042013605/
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0663デフォルトの名無しさん
NGNG0664デフォルトの名無しさん
NGNG0665デフォルトの名無しさん
NGNG0666デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 138720人 発行日:2003/1/9
年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。
そんなわけで、年末に予告したIP記録ですが実験を開始しています。
「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0667デフォルトの名無しさん
NGNG毎度のzdnetね。
0668デフォルトの名無しさん
NGNG同意。いろんな状況があるけど、結局たどり着くところはそこだと思う。
0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNGたぶん意味のある議論にはならない。
あと、とりあえず法解釈の問題ではないと思う。法政策の問題。
0671デフォルトの名無しさん
NGNGつーか>>976のリンク先に一回だけ名前出てたじゃん。
なんかのミスかもしれないけど
0672デフォルトの名無しさん
NGNG0673デフォルトの名無しさん
NGNG>>・圧縮やなんかでdat落ちした分を省いた=若干落ちてます。正解です。
1つしか落ちてないけど?
1つなのに若干って。笑
0674デフォルトの名無しさん
NGNG匿名性が失われ自分に反対する者が誰かは
わかるのに小数派には反論さえ許されない
最悪のシステム!!
もしも常に特定の人物と
意見が対立し 常に片方だけが意思を
抹殺されたら…
それが続けば必ず集団は決裂する!!
0675デフォルトの名無しさん
NGNGはい よろしくお願いします
0676デフォルトの名無しさん
NGNG0677デフォルトの名無しさん
NGNG0678デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0679デフォルトの名無しさん
NGNG0680デフォルトの名無しさん
NGNG●とにかく気が小さい(神経質、臆病、二言目には「世間」、了見が狭い)
●他人に異常に干渉する(しかも好戦的・ファイト満々でキモイ、自己中心)
●自尊心が異常に強く、自分が馬鹿にされると怒るくせに平気で他人を馬鹿にしようとする
(ただし、相手を表面的・形式的にしか判断できず(早合点・誤解の名人)、実際にはたいてい、内面的・実質的に負けている)
●「常識、常識」と口うるさいが、実はA型の常識はピントがズレまくっている(日本の常識は世界の非常識)
●権力、強者(警察、暴走族…etc)に弱く、弱者には威張り散らす(強い者に弱く、弱い者には強い)
●あら探しだけは名人級(例え10の長所があってもほめることをせず、たった1つの短所を見つけてはけなす)
●基本的に悲観主義でマイナス思考に支配されているため、性格がうっとうしい(根暗)
●一人では何もできない(群れでしか行動できないヘタレ)
●少数派の異質、異文化を排斥する(差別主義者、狭量)
●集団によるいじめのパイオニア&天才(陰湿&陰険)
●悪口、陰口が大好き(A型が3人寄れば他人の悪口、裏表が激しい)
●他人からどう見られているか、体裁をいつも気にしている(「世間体命」、「〜みたい」とよく言う)
●自分の感情をうまく表現できず、コミュニケーション能力に乏しい(同じことを何度も言う、知障)
●表面上意気投合しているようでも、腹は各自バラバラで融通が利かず、頑固(本当は個性・アク強い)
●人を信じられず、疑い深い(自分自身裏表が激しいため、他人に対してもそう思う)
●自ら好んでストイックな生活をし、ストレスを溜めておきながら、他人に猛烈に嫉妬する(不合理な馬鹿)
●執念深く、粘着でしつこい(「一生恨みます」タイプ)
●自分に甘く他人に厳しい(自分のことは棚に上げてまず他人を責める。しかも冷酷)
●男は、女々しいあるいは女の腐ったみたいな考えのやつが多い(他人をけなして相対的に自分の立場を引き上げようとする等)
それと、O♀はエコヒイキきつくて、冷酷だからな。
A♂の異質排除×O♀の冷酷=差別・いじめ とあいなる。
0681デフォルトの名無しさん
NGNG0682デフォルトの名無しさん
NGNG通報する人は、IPはあるので管理者に連絡してくれれば、
「捜査関係事項照会書で照会しますよー」って言ってたて伝えてくださいー。
0683デフォルトの名無しさん
NGNG217 名前:ひろゆき ◆3SHRUNYAXA [] 投稿日:03/01/08 17:49 ID:rLfxQ17l
一定期間でログは消しますです。
249 名前:ひろゆき ◆3SHRUNYAXA [] 投稿日:03/01/08 17:52 ID:rLfxQ17l
>荒らしとか犯罪のためなの?
そす。
246 名前:心得をよく読みましょう[] 投稿日:03/01/08 17:52 ID:BH998yxV
>ひろゆき
俺のお気に入りのスレとか荒されてるんだがそういうのにも有効?
257 名前:ひろゆき ◆3SHRUNYAXA [] 投稿日:03/01/08 17:53 ID:rLfxQ17l
いずれは。
312 :ひろゆき ◆3SHRUNYAXA :03/01/10 19:59 ID:jWxHxvti
全部にいれてみた。
0684デフォルトの名無しさん
NGNG0685デフォルトの名無しさん
NGNG0686デフォルトの名無しさん
NGNG名誉毀損でうったえるからな!
0687デフォルトの名無しさん
NGNG犯人が17歳以下なら話は別だが
0688デフォルトの名無しさん
NGNG0689デフォルトの名無しさん
NGNG0690デフォルトの名無しさん
NGNG0691デフォルトの名無しさん
NGNG0692デフォルトの名無しさん
NGNG刑事訴訟と同様、自由に上告できるってもんでもないのです。
民事訴訟法312条 (上告の理由) 1項
「上告は、判決に憲法の解釈の誤りがあること
その他憲法の違反があることを理由とするときに、することができる。」
http://www.m-net.ne.jp/~doba/goto/hon.htm
ようするに上告しても今の制度では100%無駄。
これで完全終了ってことか。
0693デフォルトの名無しさん
NGNG0694デフォルトの名無しさん
NGNG係争前の通告として現行法では 内容証明つき郵便が認知されている。
お前らに丁寧に教えてやるけど
どーせならば 現行法で裁けない理由を羅列して潰した方が得だぞ。
(それでも現行法で裁かれるんだけどな)
0695デフォルトの名無しさん
NGNG0696山崎渉
NGNG0697デフォルトの名無しさん
NGNGふぉんど
0698山崎渉
NGNG0699山崎渉
NGNG0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNG0702デフォルトの名無しさん
NGNG0703デフォルトの名無しさん
NGNG0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNG関数を指すポインタもあるのですが...。
(まあ、関数のコードもデータと言えんことはないけどな。)
0706デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNGっていう会話は「俺の友達の友達」が
実は自分のことを指しているかもしれない
つまり、直接「俺」といってしまうとヤバイのであえて
「俺の友達の友達が・・・」と言う事によって
「俺」が保護される
話し相手に「俺」を隠匿することになるわけだ
これは参照なのか?ポインタなのか?それともそもそもこの説明は間違ってるのか?
0708デフォルトの名無しさん
NGNG0709デフォルトの名無しさん
NGNG0710デフォルトの名無しさん
NGNG0711デフォルトの名無しさん
NGNG0712デフォルトの名無しさん
NGNG0713デフォルトの名無しさん
NGNG奥歯をガタ
0715デフォルトの名無しさん
NGNG0716デフォルトの名無しさん
NGNG0717デフォルトの名無しさん
NGNG0718デフォルトの名無しさん
NGNG参照と違ってNULLを保持出来る
0719デフォルトの名無しさん
NGNG0720デフォルトの名無しさん
NGNG0721仕様書無しさん
NGNG0722デフォルトの名無しさん
NGNGまぁ、いちいち作らなあかんわけやけども。
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNGヽ, ヽ い メ free
.<'',,, ,-, /', , , |
ゝ / / (( /-''/ ./ , , ;: ,, | う モ す
ヽ; : ( (''--'''''\,''-' ''''''''~'''~ ヽ ;; .|
.\ ,...,--'二二二二> .丶ヽ二二二二-;:/''ヽ| ん リ れ
..|| |, 'ァ'イo;;-ヽ丶 ,~~-''''{;o';> |' |:..''| |/
|| (';ヽ -,,.....- ァノ::| .|ヽ ---...-'. .|:::::| .| だ を ば
.l:.| l::| ,.-'''''''' ,/::| ~ ~''-z |::l/ /
ヽヽ::|; |;:::| .l::/ / な 解
.ヽ;:::| ,l;:'''' , l /./|
\:| (:::, ρ) l// ノ ? 放
|;:::;l /;:::::/
;:::::ト、 ==ニニニニ== /.| .| す
.lシ',;::::|\ / .| .l,,.)
ゞ) .| ヽ ''='''''' / | ,,,/ る
) .| ;;\ アl .| ,<
,,...-( ( | 'l;;;l.\ / / ./ l )=-,,_ と
,,..-'''’ '\l .;; ’''---'''~ ; ; l;ノ,;;/ ’''- ,_
| ;; ; ; ’'-
0725デフォルトの名無しさん
NGNG0726山崎渉
NGNG07271
NGNG0728山崎渉
NGNG( ^^ )< ぬるぽ(^^)
0729山崎渉
NGNG( ^^ )< ぬるぽ(^^)
0730デフォルトの名無しさん
NGNGヌルポインタ?
0731デフォルトの名無しさん
NGNG ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´
∧∧ ) (´⌒(´
⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ ̄ (´⌒(´⌒;;
ズザーーーーーッ
0732デフォルトの名無しさん
NGNG0733山崎渉
NGNG0734デフォルトの名無しさん
NGNGclass Obj{};
ってクラスがあって、
Obj* array[3][10];
って宣言したら、
array[0][0] = new Obj();
array[0][1] = new Obj();
・・・
array[2][9] = new Obj();
って感じでいいのけ?
ポインタの配列がよーわからん。
0735デフォルトの名無しさん
NGNGそれでオッケー。
ただし、
> array[0][0] = new Obj();
> array[0][1] = new Obj();
> ・・・
> array[2][9] = new Obj();
なんて全部並べるなら、配列なんか使う必要なし。
0736山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0737デフォルトの名無しさん
NGNG0738373
NGNG禿同
話変わるけど、携帯ゲーム機"プレイステーションポータブル(PSP)
このPSPは、新規格UMD(ユニバーサルメディアディスク)というディスクを利用しており、そのサイズは直径6cmととても小さい(CDの半分程度)。 容量は1.8GBとなっている。
画面は4.5インチのTFT液晶で、480px x 272px(16:9)。MPEG4の再生やポリゴンも表示可能。外部端子として、USB2.0とメモリースティックコネクタが用意されているという。
この際、スク・エニもGBAからPSPに乗り換えたらどうでしょう。スク・エニの場合、PSPの方が実力を出しやすいような気がするんですが。
任天堂が携帯ゲーム機で圧倒的なシェアをもってるなら、スク・エニがそれを崩してみるのもおもしろいですし。かつて、PS人気の引き金となったFF7のように。
0739デフォルトの名無しさん
NGNG0740山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0741山崎 渉
NGNG0742デフォルトの名無しさん
NGNG0743山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0744デフォルトの名無しさん
NGNG0745デフォルトの名無しさん
NGNGポインタは、「ポイントする者」、つまり「位置を指し示す者」の事。
プログラミングにおいて、ポインタは「オブジェクトの位置を保持するオブジェクト」。
オブジェクトっつうのは、変数だったり関数だったり、要はメモリ上に展開される「何か」。
その位置を示すオブジェクトがポインタ。
ポインタは大抵変数として実現するので、ポインタ自身もまたオブジェクトなのよ。
だから「ポインタのポインタ」なんて事が出来るわけね。
さて、上では便宜上「メモリ上に展開」と書いたが、高級言語を使っている場合、それは必ずしもメモリであるとは限らない。
ページングすれば HD上に展開されてしまうし、CPUのキャッシュに入る事もある。
高級言語でプログラミングするという事は、「オブジェクトが実際にはどこにあるか?」を隠蔽する、という事だ。
だから、ポインタはメモリアドレスを指す、というのは、限定的には合っているが厳密には合ってない。
オブジェクトのアドレスを指す、と言えば、ちょっとはマシになる(メモリという言葉を使わない)、かな。
0746デフォルトの名無しさん
NGNG0747デフォルトの名無しさん
NGNG0748デフォルトの名無しさん
NGNG0749デフォルトの名無しさん
NGNG上手に例えてよw
0750デフォルトの名無しさん
NGNG部屋には、それぞれ00000001号室から99999999号室まで部屋番号が
付いている。
さらに、各部屋には電球が8つ取り付けてある。
変数を宣言すると、ランダムにその変数のバイト数だけ連続した部屋が確保される。
変数に値を代入すると、確保した部屋の電球を使って、その変数のデータを保持する。
変数に&をつけると、確保した部屋のうち一番最初の部屋の部屋番号を返す。
部屋番号がxなら、*xは部屋に入っているデータを返す。
また、部屋番号xにデータを入れたければ、*x=aのように。
*xを左辺において代入する。
部屋番号は「ポインタ変数型」の変数に入れる。
ただし、部屋番号だけでは何部屋使っているのかわからないので、
ポインタ変数型にはその部屋に入ってるデータの型名も
指定するようになっている。使っている部屋数がわかるように。
0751デフォルトの名無しさん
NGNG読むだけで疲れる。
例えるなら、エロく例えろ。
0752デフォルトの名無しさん
NGNG0753デフォルトの名無しさん
NGNG0754デフォルトの名無しさん
NGNGint32は4バイトである。
(1)ポインタint32型(*i32)のアドレスをインクリメント(i32++)すると元から何バイト進むか?
(2)ポインタint32型のアドレスをインクリメントする。(i32++)
このとき、中身(*i32)はインクリメントする前の値より1だけ多いあたいであるといえるか。(int32 i32_2=*i32)
(3)また、char型(*ch)のポインタでアドレスをインクリメントするとき、(ch++)
int32型のポインタをインクリメントしたものと同じ結果を出すには
何回インクリメントしなければよいか。
(4)[問.2]と同様に、[問.3]でインクリメントしたあと、その中身(*ch)は
インクリメントした回数と同じだけ増えたものといえるか。
(5)そしてそれはなぜ?
(Extra)Pentiumシリーズは今日も32ビットである。
これint型が4バイト(=32ビット)なのはなぜか。
#僕はたとえるなら、「スライドするもの」とたとえるかな。
#映写機のフィルムはchar型の大きさで記録されている。とか。
#4画面だとint32で2画面だとshort。
#ややこしいかな・・・。映写機なんて最近聞かないし。
0755754
NGNG#include <stdio.h>
int main(){
int *i32,i32_2;//ポインタと変数を用意
char *ch=(char*)i32;//何を代入して初期化しているでしょう??
//------
i32_2=(*i32);
i32++;
if((i32_2+1) == (*i32) ){
puts("(i32_2+1) == (*i32)");
}else{
puts("(i32_2+1) != (*i32)");
}
puts("---<*i32>---");
printf("元のアドレス[%d] 今のアドレス[%d]\n",(i32-1),(i32));
printf("さっきの値[%d] 今の値[%d]\n",i32_2,(*i32));
puts("---<*ch >---");
printf("元のアドレス[%d] 先のアドレス[%d]\n",ch,(ch+1));
printf("元の値[%d] 先の値[%d]\n",(*ch),(*(ch+1)) );
return 0;
}
上のプログラムはポインタの中身は書き換えていないので実行してもマシンが飛んだりすることはありません。(でもテスト以外では、やらないで!)
実行するときは、VCはリリースビルドしてください。ほかでは試してないです。warningは今回だけ無視して良いです。
なお、上のソースで(*i32)=(なんかの値) とかやるとPCの寿命が減ります。これがやってはいけないバグです。なので、やめましょう。(理由は考えてみよう)
0756754
NGNG回答例
(1)4バイト。
(2)いえない。インクリメントで値(中身)をいじっているわけではないから。
(3)4回。char型のポインタはインクリメントすると1バイト進みます。4バイト進めるためには4回インクリメントする。
(4)いえない。問.2と同じで中身に対しては何も関与してない。
(5)ポインタはアドレスをいじることで移動する物であって、対象が固定的ではないから。
(extra)CPUの1本のレジスタが一回に扱える数の最大値が基本的に4バイト(32ビット)だから。
Pentiumは一回に8バイト(64ビット)扱えるレジスタを持っているが、使用の実態は32bitレジスタを2本専有だったりするので汎用とは言いがたい。
ちなみに計算するときは、intを使うのがCPU的に扱いやすくて早いといわれている。他の型があるのは省メモリーのため。等。
>>755
char型を初期化しているのは、アドレスで初期化しています。
つまり、ポインタを移動させているのです。
あと、書き込み可能な領域とは、自分専用に与えられた領域を指します。
ポインタは領域の間を自由に飛ぶことができます。が!
むやみに中立地帯を自分のエゴで書き換えると、ろくでもないことになります。やめましょう。
荒らしっぽくなってしまって申し訳ない。
0757745
NGNGスレ主旨とはズレた書き込みで申し訳なかったが、「例え」はどうしても真実と
ズレた事を書かなきゃならないんで、まずは正論から書いてみた。
携帯電話番号の話をしてくれた人がいたんで、それを使って例えてみよう。
携帯電話を持っている人=各種オブジェクト
携帯電話=ポインタ
携帯電話番号=ポインタ値
地上(メモリとか)のいろんな場所に散らばって存在している「携帯を持つ人」は、
それ自身なんらかの状態を持っていて、それはさまざまだ。
で、その「携帯を持つ人」を指定・特定するには、その人の所在地を言ってみたり、
その人の容姿を言ってみたり、いろいろな方法があると思う。
(a)もしその人が携帯を持っているなら(=ポインタがあるなら)、携帯の電話番号(ポインタ値)を指定するだけで、その人が特定できる。
(b)携帯を持っていない人(=ポインタがない)は、そういう方法では特定できない。
C言語だと、以下のようになる。
(a)
int a; // 誰か : オブジェクトa
int* a_ptr; // 「誰か」用の携帯 : オブジェクトa用のポインタ
a_ptr = &a; // 「誰か」に携帯を持たせる : ポインタにアドレスを代入
// 以降、a_ptrを使うだけで、aの位置が得られるし、aそのものを使ってもよい
(b)
int a; // 誰か : オブジェクトa
// ポインタは無いので、aそのものを扱う「しか」ないし、aの位置は分からない
0758ピル来る
NGNG0759デフォルトの名無しさん
NGNGウルトラ警備隊の車
0760デフォルトの名無しさん
NGNG文具屋かな?替えの電池もついでに買っておけよ
0761デフォルトの名無しさん
NGNG0762デフォルトの名無しさん
NGNG0763デフォルトの名無しさん
NGNG0764デフォルトの名無しさん
NGNG0765デフォルトの名無しさん
NGNG大会があり、参加者(人)を変数とする。
レーザーポインターをもった人をポインタとする。(人なので変数でもある)
ゼッケンをメモリアドレスとする。
人が参加する際に(変数を確保する際)、ゼッケン(メモリアドレス)が割り当てられる。
ポインタを代入する行為は、特定の人物のゼッケンの番号を覚えるということである。
ポインタから参照する行為は、覚えた人に向けてレーザーポインターで光を当て、
指し示すということである。
0766なんかてきとうに
NGNGpublic:
ポインタ operator ++();
ポインタ operator --();
}
0767なんかてきとうに
NGNGpublic:
operator &();
operator *();
}
0768デフォルトの名無しさん
NGNGお前らが書きこんでる先はなんだ?
スレだろ!!
スレの中に並んでるのは何だ?次元は?
1次元状にレスが並んでるだろうが、
よく考えてみろコレは、メモリー上と同じではないか!!
と言う事は、レスを変数 or Bitに例えれば2ちゃんねらーに分かりやすい(・∀・)<イイ
と言う事でスレを使った説明1つ考えてみた
2chでは基本的にスレッドに書き込めるレスは1000である。
その為">>"の先に書く数字は1000未満の値を入れる事になる。
と言う事はあおるAAのテンプレ↓を作ろうと思うと4文字分のスペースを">>"の後に入れて作ればずれないAAができる。
∧_∧ ∧_∧
_( ´∀`) (´∀` )
三(⌒), ノ⊃ ( >>1 )
 ̄/ /) ) | | |
. 〈_)\_) (__(___)
それと同じように、メモリ上ではアドレスは0xFFFFFFFFまである。
これを見ると、1バイトはFFなので4バイトあればメモリ上すべての位置をカバーできる訳だ、その為いかなる型で宣言しようとポインタは4バイトなのである。
ではなぜポインタに型を宣言するか?それを説明するとだいぶ長レスになるので後者に任せヒントだけ書いておくとする。
long Matrix[40];
char *Pointer = (char*)(void*)Matrix;
こうすると1バイトずつ扱える。
長文レススマソ。
■ このスレッドは過去ログ倉庫に格納されています