C言語なら俺に聞け(入門編)Part 118
■ このスレッドは過去ログ倉庫に格納されています
0047デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN下のreturn 0;のすぐ上のやつ
*(data + i)〜は
↓
&(data + i)だか&(data[i])だか&(*(data + i))だかの間違えですよね????
■
#include <stdio.h>
int main (void){
char* data[4] = { "par","birdie",
"eagle", "albatross"};
int i;
printf("date[i] 値 アドレス : ポイント先の値\n");
for(i = 0; i<4; i++){
printf("data[%d] %10d %10d %10s\n", i,
*(data + i), data + i, data[i]);
}
return 0;
}
↓↓↓↓↓↓↓
↓↓結果↓↓↓
↓↓↓↓↓↓↓
data[i] 値 アドレス : ポイント先の値
data[0] 4235576 1245052 par
data[1] 4235580 1245056 birdie
data[2] 4235587 1245060 eagle
data[3] 4235593 1245064 albatross
ポインタ配列のアドレスdata + iは綺麗に4つずつ離れている
ポインタ配列がそれぞれ指しているアドレス*(data + i)は文字列が
格納されているのでバラバラの間隔です。→&(data + i)だかの間違え
■ このスレッドは過去ログ倉庫に格納されています