|
2006/07/24
■ポインタ型
ソース
#include <stdio.h>
int main(void)
{
char buf[] = {0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef};
char *pc;
short *ps;
long *pl;
long addr;
pc = buf;
ps = buf;
pl = buf;
printf("*pc = %p\n", *pc);
printf("*ps = %p\n", *ps);
printf("*pl = %p\n", *pl);
printf("\n");
printf("*(pc+1) = %p\n", *(pc+1));
printf("*(ps+1) = %p\n", *(ps+1));
printf("*(pl+1) = %p\n", *(pl+1));
printf("\n");
printf("buf : %p\n", buf);
addr = (long)pc;
printf("addr = %p\n", addr);
printf("*((char *)addr) = %p\n", *((char *)addr));
printf("*((short *)addr) = %p\n", *((short *)addr));
printf("*((long *)addr) = %p\n", *((long *)addr));
return 0;
}
実行結果
*pc = 0x1
*ps = 0x2301
*pl = 0x67452301
*(pc+1) = 0x23
*(ps+1) = 0x6745
*(pl+1) = 0xefcdab89
buf : 0x22cce0
addr = 0x22cce0
*((char *)addr) = 0x1
*((short *)addr) = 0x2301
*((long *)addr) = 0x67452301
|