★初心者にVisual C++を教えるスレ★ Part3
■ このスレッドは過去ログ倉庫に格納されています
0043デフォルトの名無しさん
NGNG俺様は今C/C++を勉強中でポインタについて確認したいことがあるのだ。
以下は俺様がじきじきに勉強してまとめたものだが、
int *hh;
char *hh;
と宣言してもどちらもアドレスが入る。(基本)
intで宣言したらメモリ上の大きさはデフォルトの4バイトcharで宣言した方は1バイトである。
よって配列で拡大していくとintは4バイト、charは1バイトずつアドレスが増加する。
printfで表示させる方法は"%p"で&変数だとアドレスの表示、"%scdfとか型に合った香具師"で*変数だと中身の表示
char hhh[] = "ABC"; //←はhhh[0]で、(printfで)&hhhで見るとAAAの格納しているメモリ上のアドレスを表示する。
char hhh[] = {'A','B','C'}; //←はhhh[0]、hhh[1]、hhh[2]で、(printfで)&hhhで見るとこいつのhhh[0]の格納されているメモリ上のアドレスを表示する。
ちなみにこいつら'A'、'B'、'C'はメモリ上では連番で連なっている。
char *hhh[] = "ABC"; //←はhhh[0]で、'ABC'の入っているメモリ上のアドレスを格納している。
char *hhh[] = {'A','B','C'}; //←はhhh[0]、hhh[1]、hhh[2]で、'A'、'B'、'C'の入っているそれぞれのメモリ上のアドレスを格納している。
ちなみにこいつら'A'、'B'、'C'は別々のメモリアドレスに格納されている。
char *hh = "AAAAAA";
char **hhh = &hh; //←は'AAAAAA'の入ってるアドレスをいれていることになり、
printf("%s",*hh)で"AAAAA"表示、printf("%p",&hh)でアドレス表示、
確認が欲しい、以上であってるか?
あとprintf("%c",**hh)がわからないから教えてくれ!
■ このスレッドは過去ログ倉庫に格納されています