pointer.d
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import std.stdio;
void main(){
int x = 100;
int *prev, next;
/*
C と若干違う, C の場合は prev はポインタで, next は普通の int 型変数.
D の場合は, prev は ポインタで, next もポインタで.
*/
prev = &x;
next = prev;
int* a = &x;
/* int *a = &x でも大丈夫 */
int* b = a;
printf("%d %d\n", *a, *b);
int* c = &x, d;
d = c;
printf("%d %d\n", *c, *d);
printf("%d\n", *prev);
printf("%p\n", next);
/*
C 言語と違って a, b, c, d は全て int* 型.
前置宣言形式 (int* symbol, symbol;) では symbol はすべて int* 型.
*/
}
|
pointer.d の実行結果は:
[cactus:~/code_d/d_tuts]% ./pointer
100 100
100 100
100
0xbffff394