您的位置:首页 > 其它

测试自己的指针掌握情况

2015-10-05 22:40 357 查看
想想它们的结果分别是什么,欢迎有兴趣的朋友踊跃回答。

1、#include <stdio.h>

int main(void)

{

int a[5]={1,2,3,4,5};

int *ptr=(int*)(&a+1);

int *ptr1=(int*)((int)a+2);

printf("%x %x\n",*(ptr-1),*ptr1);

return 0;

}

-----------------------------------------------------------------------

2、#include <stdio.h>

int main(void)

{

int a[5]={1,2,3,4,5};

   char *pt=(char*)&a;

   printf("%d %d",*(a+1),*(int*)(pt+4));

return 0;

}

-----------------------------------------------------------------------

3、#include
<stdio.h>

int main(void)

{

int a[3][4]={1,2,3,4,5,6};

int *pa=(int*)a;

printf("%d %d\n",a[1][1],pa[5]);

int b[12]={1,2,3,4,5,6};

int (*pb)[4]=(int(*)[4])b;

printf("%d %d\n",b[5],pb[1][1]);

return 0;

}

-----------------------------------------------------------------------

4、#include <stdio.h>

int main(void)

{

struct sm

{

short a;

char b,c;

};

int a=0x12345678;

int b=(int)(*(struct sm*)&a).c;

printf("%d %x\n",b,b);

return 0;

}

-----------------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: