C語言:指標練習題(1)
阿新 • • 發佈:2018-12-18
練習1:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[5] = { 1, 2, 3, 4, 5 };
int* ptr = (int*)(&a + 1);
printf("%d %d", *(a + 1), *(ptr - 1));
system("pause");
return 0;
}
輸出結果為:2; 5
題目分析:
練習2:
struct Test { int Num; char *pcName; short sDate; char cha[2]; short sBa[4]; }*p; int main() { p = (struct Test*)0x100000; printf("%p\n", p + 0x1); printf("%p\n", (unsigned long)p + 0x1); printf("%p\n", (unsigned int*)p + 0x1); }
輸出結果:0x100014;0x100001;0x100004
分析:
練習3:
int main()
{
int a[4] = { 1, 2, 3, 4 };
int *ptr1 = (int *)(&a + 1);
int *ptr2 = (int *)((int)a + 1);
printf("%x,%x", ptr1[-1], *ptr2);
return 0;
}
輸出結果:4;2000000
分析:
練習4:
#include <stdio.h> #include <stdlib.h> int main(int argc,char* argv[]) { int a[3][2] = { (0, 1), (2, 3), (4, 5) }; int *p; p = a[0]; printf("%d", p[0]); }
輸出結果:1
分析: