ポインタについて

このエントリーをはてなブックマークに追加
1ぷろぐらまぁ
ポインタはデータの値ではなく、データが格納されている
メモリーのアドレスを持つ変数で、そのポインタを使うと、
任意のアドレスを指定してデータの読み書きができるということですが、
どのようにして使うのかがちょいわからないです。
だれか教えてちょ。
ヘルプ読んだ?
俺VB使ってるがそれぐらいわかるぞ。
あなたがポインタを使いこなすのは ム リ と思われ。
単発質問スレ立てるな、削除依頼出して来い。
関数の引数を渡すときとか。引数ってのは結局、ひとつの変数だから、
引数として渡した値をコピーしているだけ。だから、そのコピーした
値を変更つまり、その関数が用意した変数の値を変更しているだけで
関数呼び出しもとの値は変更できてないの。それじゃー、こまるから
呼び出しもとの変数の場所を教えてあげることで、その変数の場所の
値を変更できるから、大丈夫ってわけ。代表的な使い方はこんな漢字。
6今回も法則どおりか:02/01/31 00:08
類似スレ
ポインタのポインタがわかりません!!
http://pc.2ch.net/test/read.cgi/tech/1011199511/

本来ならここで質問すべきスレ
C言語なら、俺に聞け! <12>
http://pc.2ch.net/test/read.cgi/tech/1012348974/
削除依頼出しても、実際消えるまでかなりの時間掛かるね
ここにはポインタを正確に理解できない人も多いから別のすれで
質問しれ。
1がプログラマを名乗ってることに激しく抗議したい!
102:02/01/31 00:10
俺いつも思うんだけどポインタが分からないっつってるやつが
分からない。

そんなに難しいか?あれ。便利じゃん。
VB使ってるとうらやましいぞ。
>5
ここで答えると調子に乗るだけだからやめろ
ポインタつーのは相対アクセスしないと参照と同じ。
脱糞しました;)
とりあえず>>1はdelphiダウンロードしなさい。
15ぷろぐらまぁ:02/01/31 23:18
ポインタって具体的にどういうとこが便利なんですか?

16デフォルトの名無しさん:02/01/31 23:20
だから、C覚える前に、アセンブラ覚えろって15年前から毎年若い輩に言っているだろが〜。
クソスレ上げたり1の代理したりと大変ですね? :)
>>15
100MBのデータを関数に渡す時

100MBのデータをそのままコピーするのと
100MBのデータのアドレスをコピーするのと

どっちが楽か考えてみなよ
19デフォルトの名無しさん:02/01/31 23:25
>>1は全部グローバル変数を使用しなさい。
20デフォルトの名無しさん:02/01/31 23:34
D:\data>debug
-a 100
2CDF:0100 push cs
2CDF:0101 pop ds
2CDF:0102 mov dx,0200
2CDF:0105 mov ah,09
2CDF:0107 int 21
2CDF:0109 mov ax,4c00
2CDF:010C int 21
2CDF:010E
-e 200
2CDF:0200 00.ba 00.de 00.d7 00.a7 00.24
-r ip
IP 0100
:100
-g

dx (=0x0200)がポインタだ。ぢょっと違うか。
>>1さん
難しい質問をしますね。
プログラマーのみなさんはこんなことを
毎日のお仕事にしているのですか?
凄いです。
メモリーとかアドレスとか発言してみたいです。
「その変数のメモリーアドレスがさぁ」とか、
「いけない!アクセスバイオレーションだよ。」とか
言って見たいです。
>>1さん
尊敬します。
がんばってください。
22ぷろぐらまぁ:02/01/31 23:57
>>18
関数はたとえばどういった関数?
>>19
グローバル変数?へ?
>>20
その言語わかりませんです・・
>>21
そんな尊敬されるほどの実力ありませんです。
ポインタすら理解に苦しんでるのでね。
でもがんばりますです・・
>>22
さてはあなた真性ですね?
寝ただった〜
2516,20:02/02/01 12:18
>>22
アセンブラだってば。
あんたのPCでコマンドプロンプト開いて
DEBUGって半角で打ってみな。
26まもら ◆MtyDeTiY :02/02/01 12:31
>>16
Z80とかの乗ったワンボードマイコンをつかった実習とか、
高校の理科か数学の授業でやるべきだよね。文系も含めて。
>>26
うちの高校はやった。
こら〜、俺のポインターで君を指し示しちゃうぞ〜。
29デフォルトの名無しさん:02/02/01 17:38
いや〜ん、そんな所指し示しちゃ駄目ぇん
ありません・・・
投了です・・・・
>28,29
Memory Hole at 15-16MB
32デフォルトの名無しさん:02/02/01 17:47
とりあえず>>5で覚えとけ!
使うのは使う関数次第だぞ。
関数がポインタを使うような関数だったら
使えばいいっつーことで、ほぼいいじゃないの?

いきなりつかうつっても、使う関数が決まんなかったら、
使いようがないぞ!
ポインタの使い方は
int i=0,*p=&i;
だとして
int d=*p;
int Int=p[0];
みたいに参照演算子を使ってやります。
配列とポインタの完全制覇
http://member.nifty.ne.jp/maebashi/programmer/pointer.html


36デフォルトの名無しさん:02/02/01 19:53
(((void (*)())0)());
37デフォルトの名無しさん:02/02/01 19:58
>>35 前橋和弥氏マンセー
>>35
よくよく見たら、まえばしだったんだな。今はじめて知った(藁
39ぷろぐらまぁ:02/02/02 03:06
>>5
つまり、関数呼び出しは関数内部の処理が完了したら
関数の呼び出し元(呼び出した命令の次のアドレス)
に処理が戻ってこなければいけないからそのアドレスを記録しておくってこと?
>>25
コマンドプロンプトとは?何?
>>33
うん、たしかに
>>34
むず・・・・
クソスレ上げんといて・・
みんなageちゃう。
>>39
qsort()でも、見てみれ。
それから、ageんな。
ポインタの使用例:
char* strcpy(char* s1, const char* s2)
{
  char* p = s1;
  while ((*s1++ = *s2++) != '\0')
    ;
  *s1 = '\0';
  return p;
}
>>39
次からはメール欄に sage と入れて書き込んでください。
sage は半角英字です。
>>43
何故ヌル文字を2回も入れている?
whileの終了条件は"ヌル文字が式の値で帰ってれば"だぞ。
4746:02/02/02 08:13
スマソあげてしまった・・。
48○◎●〇@:02/02/02 23:35
>>1

無理して使う事無いよ。

でも、どうしても気になるなら
アセンブラ使えば、すぐわかると思う。
49デフォルトの名無しさん:02/02/05 20:00
ポインタが理解できないのならこれ見てみそ。
http://www3.plala.or.jp/shinai/wanwan/englishpointer.htm
50デフォルトの名無しさん
>>49の性格: 独立心が強く、集中力がある、短気で興奮しやすい