[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 07/06 18:50 / Filesize : 211 KB / Number-of Response : 910
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

VBプログラマ質問スレ(Ver.6.0 まで) part62



1 名前:デフォルトの名無しさん [2013/02/15(金) 16:54:12.79 ]
ここは Visual Basic 〜6.0 の質問スレです。
質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。

VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。

○ 質問者の心得
 一.質問する前にMSDNやGoogle、過去ログにも目を通してみる。
 二.VBScript、インストーラーなどはこのスレでOK。
 三.質問は第三者にもわかりやすいよう簡潔かつ具体的に。
 四.荒らしは相手しない。

○ 回答者の心得
 一.答えられない質問は無駄に罵倒せずスルー。無理するな。
 二.代用法を強制しない。
 三.回答する上で必須ではない情報をむやみに聞き返さない。
 四.荒らしは相手しない。
 五.VB情報募集中。
 六.回答は質問者が理解できるよう具体的に。

MSDN Online Japan ホーム
 www.microsoft.com/japan/msdn/default.asp
Visual Studio 6.0 Service Pack 6
 msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx
Google
 www.google.co.jp/

前スレ VBプログラマ質問スレ(Ver.6.0 まで) part61
toro.2ch.net/test/read.cgi/tech/1359721249/

※「まず自分で調べる」クセを身につけよう。

116 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 03:42:17.69 ]
GetPrivateProfileStringで全角文字使えないかんじ?

117 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 03:48:14.84 ]
s = String(20, " ")
r = GetPrivateProfileString(ap,ky,df,s,20,fl)
n = len(s)
としたとき
全角文字が無いとき、例えば abcdefg だったとすると
r=7 n=20 ってなって8文字目がNullコードになってるんだけど
全角文字があるとき、例えば あいう だったとすると
r=6 n=17 ってなって4文字目がNullコードになって
sの変数のサイズが変わっちゃうんだけど
sの消えた3文字分のメモリはどこいっちゃったの?って感じで
これってヤバイの?大丈夫なの?

118 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 03:49:47.13 ]
sには固定サイズの文字列渡したほうがいいの?
Dim s As String * 20
みたいな

119 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 06:59:19.24 ]
文字数とバイト数は違うぞ
LenじゃなくてLenB使ってみ

120 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 10:59:04.17 ]
>>117
全角を使うときは値をダブルクォーテーションで囲えアホが

121 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 19:59:22.42 ]
>>119
それに何の意味があるのだろうか

Len("abc") > 3
LenB("abc") > 6
Len("あいう") > 3
LenB("あいう") > 6
Len("abあ") > 3
LenB("abあ") > 6

122 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 20:01:48.31 ]
>>120
ダブルクオーツで囲っても>>117と結果同じだったんだけど・・・

123 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 20:09:29.55 ]
GetPrivateProfileStringは最初の=以降から文末までを読み込むようで
"あいう"えお"
という二重引用符を間に挟んでやると
文頭と文末の引用符を除いた
あいう"えお
を返してくれたよ

124 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 20:12:51.87 ]
>キー名に関連付けられている文字列が単一引用符や二重引用符で囲まれている場合、GetPrivateProfileString 関数はこれらの引用符を取り除きます。

単一引用符でも取り除かれるのか
これは意外だ

つかVB6付属のMSDNには文字列書き込むときには引用符でくくれとは書いてないように見えるのだが



125 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 20:22:42.95 ]
今どきiniとかないわー
xmlにしろよ

126 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 20:25:59.25 ]
っていうか質問の内容を勘違いしないで
全角文字が取得できないなんて一言も言ってないし
20文字分(40bytes)のメモリを割り当てた変数が
全角含む文字列渡すと全角1文字につき1byte分減って戻ってくるけど
これってメモリ関連のトラブルの発生源になったりしないか聞きたいんだけど

127 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 20:28:31.08 ]
固定長文字列にしたら元の文字列サイズ分ちゃんと戻ってくるのな
可変長文字列をGetPrivateProfileStringに渡しちゃまずいのか?

128 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 20:35:35.69 ]
>>125
少量のキーと値の関連付け保持に便利じゃん
レジストリは使いたくないし、xmlだと一部の文字にエスケープとか使って配慮しないといけないし

129 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 20:58:55.89 ]
>>126
ANSIとUNICODEの変換でそう見えるだけ
UNICODEでの文字数とANSIの文字数(バイト数)は一致しない

130 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 21:17:03.54 ]
固定長文字列でもちゃんと戻ってくるかと思ったけど違ったわ
"A"で初期化したけど可変長文字列と同様に減って戻ってきてるわ
減った分が32、半角スペースで埋まって戻ってきた
やはり仕様なのか、もしくは全角使うのがまずいのか
GetPrivateProfileStringAじゃなくGetPrivateProfileStringWを使うべきなのか

>>129
APIが全角1文字を半角2文字分としてよこしてVBが2文字分の領域を確保するけど
バイトコードからVBが全角文字だと判断して2文字分を1文字分に減らすってこと?

131 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 21:25:24.91 ]
あ=82A0
をAPIが 82 と A0 の1バイト文字(半角)2文字分としてVBに渡して
がVBで確保した2文字分の領域4バイト 0000 0000 に上書きされて
0082 00A0 となったところをVBが全角文字と判断して
0082 00A0 → 82A0 という1文字分(2バイト)減らして変数に戻すってこと?

132 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 21:57:53.94 ]
VBが確保した領域10文字なら10バイト分をAPIに渡して
文字列が「あAA」なら
APIは10バイトの最初2バイトを82、A0で埋めて3バイト目を65、4バイト目を65、5バイト目を0にしてVBに返し
VBは10バイトを1バイトずつ解釈していってunicodeに変換して変数に再割り当てしてるってことなのか?
でもそれだと適当な文字で初期化した固定長文字列の減った部分が半角スペースで初期化されてるのはおかしいし
どうなってんだこれ

133 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 22:05:41.59 ]
何このバカ?
値が取れればそれでいいだろ?頭使えよ。

134 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 22:06:22.11 ]
>>129
なんかわけわかんねえレスだなと思ってたらGetPrivateProfileStringの戻り値の話?
戻り値は書き込んだバイト数返すはずだからLenやLenBした値と違うのは当たり前じゃね?
そうじゃなくて変数の割り当てメモリが減ってるって話なんだけど



135 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 22:10:14.91 ]
GetPrivateProfileString自体がVB6の関数でも何でもないのに戻り値が理不尽だと騒ぐバカ。
相手にする方がどうかしてる。

136 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 22:12:23.64 ]
だれも戻り値の話なんかしてないだろ
確保しておいた変数のサイズがAPIに渡したら変数のサイズが変わったって言ってんだよ
文字列の長さの話じゃねえし戻り値の話でもない

137 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 22:14:00.99 ]
>>136
冷静に。
サイズなんか変ってないよ。
BSTRとみなした時の文字数が変っただけ。

138 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 22:14:30.29 ]
変数の割り当てメモリはどうやって調べた?
文字列の長さ=割り当てメモリじゃねーぞ。

139 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 22:15:56.02 ]
>>136
なに興奮してんだこのアホ。関係ない戻り値で反応しやがったw

140 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 22:26:25.87 ]
>>137-138
Dim s As String * 10
s = String(10, "A") ' s="AAAAAAAAAA" Len(s)=10, LenB(s)=20
GetPrivateProfileString(ap,ky,df,s,10,fl)
のコードで

文字列が"AAAA"の場合
s="AAAA0AAAAA" ( 0 はNull文字)

文字列が"あAA"の場合
s="あAA0AAAAA_" ( 0 はNull文字 _ は半角スペース)

固定長文字列を渡した場合、全角含む文字が渡された場合に後部に半角スペースが入るのは何でなの?
これって確保した変数サイズが変わったってことじゃないの?

141 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 22:29:01.06 ]
>>140
半角スペースだって分かってるならTrimすればええやん 初心者?

142 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 22:30:12.12 ]
> これって確保した変数サイズが変わったってことじゃないの?
違います。終了。

143 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 22:33:16.70 ]
>>141
Trimする意味がわからんのだが?

>>142
全部Aで埋めたはずなのに何で後部の文字が半角スペースになるの?APIの仕様に書かれてない処理なんだけど

144 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 22:33:18.57 ]
>>140
とりあえず2つの問題を区別しよう。

(1) なぜ最後に半角スペースが付くのか
(2) 「変数のサイズ」(確保されたメモリ領域のバイト数)は変ったのか

(1)は本当だと仮定して理由は分からない。
(2)は変ってません。変ったのは、20バイトのメモリ内のデータをUTF-16の文字数と
みなした時の文字数だけ。



145 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 22:44:53.79 ]
>>144
Lenしたときの文字数が変わるのは可変長文字列を使った>>117のケースで
>>140は固定長文字列を使ってるからAPI通したあともLenした文字数は変わってない
可変長のときなら減った文字数分の半角スペースが固定長文字列のときに後部に埋まってるという話なんだけど

固定長のとき
確保したメモリいっぱいにAの文字を埋めたんだから
APIが前部のデータを上書きしても後部はいじってないのだから
メモリをそのまま引き出したのなら後部はAのままのはずなのに半角スペースが入ってる
これでメモリに異常は起きてないっておかしいんじゃないの?

146 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 23:07:10.72 ]
つかもういいよ
仕組み知ってる人いなさそうだし
ここで質問した俺が大馬鹿だったてことでいいよ
VBでAPIを使うときVBがAPIとどうやりとりしてるかの知識が足りない俺がバカでした
さよなら

147 名前:デフォルトの名無しさん mailto:sage [2013/02/26(火) 23:10:48.17 ]
VB6っていうか、もうWin9x時代のこと大分忘れてるから混乱するな...
冷静に考えるとBSTRはUTF-16だから、ポイントしている領域が同じなら「文字数」が
変るのは確かに変だ。

質問者はひょっとして(今時)Aの付く方のAPIを呼んでるのかね。
VBはこの辺りブラックボックスだから困るんだけど、この場合は、恐らく
関数の呼び出しの前後で.NETでいうマーシャリングが入るんだろう(想像)。

呼出し後に文字数が変るのはこのためか?

148 名前:デフォルトの名無しさん mailto:sage [2013/02/27(水) 02:48:18.10 ]
APIではバッファの最大長を指定する
戻りでヌルターミネートされた先の領域なんて保障されてないだろ

API呼び出し後にANSI-UNICODEの変換が入ってるから
その変換時に(VBとしての)変数のサイズが変わっても不思議も問題もない

149 名前:デフォルトの名無しさん mailto:sage [2013/02/27(水) 03:02:32.75 ]
VB6からWのほうって呼び出せるのか?

150 名前:デフォルトの名無しさん mailto:sage [2013/02/27(水) 03:05:23.37 ]
呼べることは呼べる
でもA呼び出すよりメンドクセ

151 名前:デフォルトの名無しさん mailto:sage [2013/02/27(水) 04:26:45.46 ]
呼び出せんのか
知らなかったわ
どうやんの?

152 名前:デフォルトの名無しさん mailto:sage [2013/02/27(水) 04:46:20.16 ]
呼び出すだけなら普通に〜WまでDeclareして呼ぶだけ
文字列渡したらどうなるかは知らん

153 名前:デフォルトの名無しさん mailto:sage [2013/02/27(水) 05:00:16.69 ]
当然ながらメンドクセと言ってる部分のことを尋ねているのだが

154 名前:デフォルトの名無しさん mailto:sage [2013/02/27(水) 05:03:47.90 ]
Visual Basicに関するメモ
homepage3.nifty.com/numericworld/computer/vb/memo.htm

APIとの文字列のやりとり(ANSI vs UNICODE変換)

を嫁



155 名前:デフォルトの名無しさん mailto:sage [2013/02/27(水) 12:27:49.61 ]
declare function GetPrivateProfileStringW lib "kernel32" ( _
byval ap as long, byval ky as long, byval df as long, byval s as long, byval l as long, byval fl as long) as long
dim s as string
s = string(10, vbnullchar)
l = GetPrivateProfileStringW(strptr(ap), strptr(ky), strptr(df), strptr(s), 10, strptr(fl))
s = left(s, l)

156 名前:デフォルトの名無しさん mailto:sage [2013/02/27(水) 16:02:58.71 ]
正解!

157 名前:デフォルトの名無しさん mailto:sage [2013/02/27(水) 21:39:47.58 ]
%TEMP%フォルダに
DF〜.tmpというゴミファイルが大量にたまってると思ったら
旧VBのせいかよ!

158 名前:デフォルトの名無しさん [2013/02/27(水) 21:42:33.26 ]
いつの間にかVB.netをVBって呼ぶようになったのね。
VBできますか?って言われたから、てっきりVB6.0の事かと思って「ハイ!」と答えたら
あとでVB.netだったと分かりさあ大変。納期は3週間しかないけど対応できるだろうか?

バカだなおれorz

159 名前:デフォルトの名無しさん mailto:sage [2013/02/27(水) 21:46:01.33 ]
アイコン使ってる旧VB製のやつが原因か
まぁIE9でも作られてるが・・・

160 名前:デフォルトの名無しさん mailto:sage [2013/02/27(水) 21:53:10.31 ]
アイコンなんて使ってないけど?

161 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 21:41:42.10 ]
変数のポインタアドレス渡すとか何か怖いな

162 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 21:43:47.88 ]
>>155
ていうかこれ書き込まれる文字コードはunicodeってわけじゃないのな
引数としてunicodeが渡せるってだけなのな

どっちみちファイルにANSIで書き込まれるのならAとWどっちを使っても同じやん旧VBからは

163 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 21:57:08.78 ]
INIファイルの先頭にBOMがあるかないかで動作が変わったような記憶が。
違ってたらごめん。

164 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 22:13:13.73 ]
>>161
ポインタアドレスってなんだよ?ポインタ自体がアドレスだろうが?
それともポインタのポインタか?そんなもん渡してませんが何か?

これだからVB6オンリープログラマは怖いわ・・・。



165 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 22:24:36.72 ]
ポインタってアドレスを指す変数のことじゃなかったのか・・・勉強になるなこのスレ

166 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 22:43:02.98 ]
おとなしくxmlを使えばいいのに

167 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 23:04:23.74 ]
>>165
いつからポインタが変数になったんだよ?w

168 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 23:06:05.49 ]
配列なら変数だな

169 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 23:18:06.38 ]
普通の変数は値を保存しているけど
ポインタは変数の値を保存しているメモリのアドレスを保存している変数

170 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 23:21:17.55 ]
ポインタは変数ではないよ。そんな風に教えたのは一体どこの専門学校だよ?大原か?

171 名前:デフォルトの名無しさん [2013/02/28(木) 23:23:23.90 ]
>>170
ググるとポインタは変数ですと説明しているサイトが山のようにひっかかるからだろ?
アホの仲間入りをさせておけばええやんw

172 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 23:24:10.45 ]
語義を考えれば分かると思うが、ポインタとはもともとは左辺値が入る変数やレジスタのこと。
左辺値そのもののこともポインタと言ったりするが、それは派生的用法だろう。

173 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 23:24:30.44 ]
>>169

ポインタ (プログラミング) - Wikipedia
ja.wikipedia.org/wiki/%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)

174 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 23:26:02.52 ]
変数のように扱えるから、初心者はアドレス専用変数と考えると分かりやすいからでしょう。
言語仕様は関係ないでしょうから。



175 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 23:28:59.80 ]
>>172
>ポインタとはもともとは左辺値が入る変数やレジスタのこと。

一体どんな言語を前提として言ってるのかね?アセンブラかい?
だったらWORD PTRとかQWORD PTRとかを変数と呼ぶのかい?
少なくともC言語では言語仕様上ポインタは変数ではないぞ。
変数と同じように値を代入する事はできるがな。

176 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 23:30:23.30 ]
VB6でポインタを語っている時点で終わってる訳だが?

177 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 23:31:46.23 ]
前スレに関数ポインタをVBから実行するテクがあったな

178 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 23:33:29.67 ]
StrPtrとかなんで隠し関数なんだ?

179 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 23:35:23.62 ]
>>175
だから、君が本来の意味と派生的な意味の区別がついてないだけ。
馬鹿はこれだからな。人が言ってるそばからまったく。

180 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 23:35:36.60 ]
AddressOf 演算子を変数だと言い出す奴が出現しそうだなw

181 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 23:35:47.31 ]
仕様と実装は別じゃね
Cコンパイラがポインタを変数のように扱うかもしれんだろ

182 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 23:36:37.23 ]
本来の意味と派生的な意味をごっちゃにしてる奴が話を混乱させているだけだろ?

183 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 23:42:34.41 ]
「ポインタ変数」と書いてるサイト大杉ワロタ

184 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 23:50:09.01 ]
>>183
Cの場合はポインタは型。
つまり「ポインタ変数」はポインタ型の変数と言う意味。
だから何もおかしくない。



185 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 23:51:12.24 ]
この辺り、ポインタ変数もムーミン村とかバカボンパパと同じ系統のネーミングだなw

186 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 23:55:05.08 ]
関数へのポインタ = 関数ポインタ
変数へのポインタ = (変数)ポインタ

ポインタを入れる変数 = ポインタ変数

関数へのポインタ = 関数ポインタ
関数へのポインタを入れる変数 = 関数ポインタ変数

ここまでいえば、ポインタとポインタ変数の
違いぐらいわかるだろ。

187 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 23:58:07.54 ]
WORD pointer ← WORD型変数

WORD型

WORD* pointer ← WORDポインタ型変数

WORDポインタ型

188 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:00:57.25 ]
WORD* pointer

WORDポインタ型

int* pointer

intポインタ型

void* pointer

voidポインタ型


?* pointer

型名を省略して、ポインタ型
そしてpointerはポインタ型変数
変数の中に入っている値 ・・・ ポインタ

189 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:03:24.02 ]
>>186
まだ言ってるのか。
概念としては、アドレスを入れる入れ物としてのポインタがあくまで先。

Cには型の概念があるから、ポインタ変数の型のことをポインタと呼ぶことにした、
という順番。まさにムームン村。

190 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:04:59.38 ]
> ポインタ変数の型のことをポインタと呼ぶことにした、
してない。

ポインタは変数の中に入っている値。

ポインタと
ポインタ型と
ポインタ変数は
それぞれ別

数値と
数値型と
数値型変数
といえば理解できるだろ?

191 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:06:20.94 ]
だから語義を考えろって。生きてるうちに少しは頭使えよ。
pointer = point + er。

192 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:06:50.89 ]
それで?

193 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:08:11.73 ]
位置を支持するもの(変数)だからpointerって言うんだよ。
位置だけならただのpointじゃねえか。
こんな簡単な話がわからない奴がいるんだからな。

194 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:08:23.58 ]
おまえら旧VBでポインタ扱うことあるの?ならこの話を続けてもいいよ



195 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:10:33.15 ]
wiki.answers.com/Q/What_is_a_pointer_variable

What is a pointer variable?
A pointer variable is a variable that contains the memory
location of another variable or an array (or anything else in memory).
Effectively, it points to another memory location.

196 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:11:31.11 ]
pointerって黒板指す奴だな

197 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:15:49.97 ]
#define BASE 0xA000
WORD *pointer = BASE ← これ(BASE)が位置(ポイント)

BASEがポイントであり、
pointerに入っている値(=0xA000)は
ポイントを指し示すものだから、ポインタ

198 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:17:28.10 ]
>>197
馬鹿だろお前

199 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:19:59.89 ]
反論できなきゃ、お前が馬鹿ってことになる。
口を出したのなら、最期までやらなきゃ自滅だよ。

200 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:20:03.06 ]
defineってマクロじゃん
テキスト的にその文字列を置き換えるってだけのものなのに

201 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:20:59.42 ]
東京タワーの場所 = 位置
その位置を表す数値=ポインター

202 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:27:28.17 ]
2つ3つの意味を持つ言葉ってプログラミング言語にはつきものなのかな
プロセスとかパイプとか

203 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:27:36.24 ]
WORD point;
WORD *pointer = &point;

204 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:28:33.59 ]
>>199
反論てw
>>197に反論が必要だと思ってるのか。
厚顔無恥ってのはすごいことだね。

2行目で自分で「ポイント」だと言ってる同じ0xA000という値が、
5行目では「ポイントを指し示すもの」になってることに何も疑問を感じないのかよ。



205 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:31:45.50 ]
東京タワーの場所 = 位置(BASE) = ポイント
その位置を表す数値(0xA000)=ポインタ

0xA000 = ポインタ
0xA000 を入れるための変数 = ポインタ変数

なにか矛盾でも?

206 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:34:39.31 ]
変数の位置を指し示す値だからポインターだろ。

207 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:34:43.24 ]
>>201
だから違うよ。そういうことじゃない。

その例えでいうのなら、たとえば首相の現在位置を表示する掲示板(そんなものがあるとして)がポインタ。
東経何度北緯何度というのはただの位置情報であって位置の指示者(ポインタ)じゃない。

208 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:36:20.33 ]
結論まだ?

209 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:37:17.49 ]
首相の現在位置 = ポイント

だな。

現在位置を表す値がポインタだ。

210 名前:デフォルトの名無しさん mailto:sagege [2013/03/01(金) 00:39:31.13 ]
「ポインタ演算」という言葉があることを知っていれば、
ポインタは演算できるものだってわかるはずだがね。

211 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:39:37.77 ]
>>209
だから違うって馬鹿か。
それは「位置情報」であって「位置の指示者」じゃない。

212 名前:デフォルトの名無しさん mailto:sagege [2013/03/01(金) 00:40:43.81 ]
「位置の指示者」って変な用語だなw

ポインタは演算できるもの、すなわち
値であることは明らかだ。

213 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:41:53.41 ]
>>210
納得した。確かに値だ。

214 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:44:16.42 ]
しかし、「メモリ上の位置をポイントする変数 = ポインタ」というのが
ポインタという概念の出発点で、あとの用法はあくまで派生的なものだ、ってそんなに難しい話か?

まあ世の中馬鹿多いし、だいいちここはVBerのスレだからあれか...



215 名前:デフォルトの名無しさん mailto:sagege [2013/03/01(金) 00:49:14.63 ]
>>214
だからポインタは演算できる値だって結論でただろ?

メモリ上の位置=ポイント
例えば特定のポイントに変数aがあるとする。
その変数aのポイントを指し示す変数b(ポインタ変数)がある。
ポインタ変数bの中に入っているのがポインタ

×「メモリ上の位置をポイントする変数 = ポインタ」
○「メモリ上の位置(ポイント)を指し示す値 = ポインタ」

ポイント と ポインタ は別物なんだよ。

ポイントが変数aの場所だとして、
ポインタは変数bに入っているんだよ。

216 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:55:30.01 ]
>>215
そういう物の言い方って馬鹿特有だね。
馬鹿って何度言っても「位置情報」と「位置情報の指示者」の区別が付かないんだな。

っていうか、自分でポイントを表す値がポインタだ、って言ってて何の疑問も感じないんだから凄い。
まともな教育受けてるのか君って。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<211KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef