主要内容:数组和指针操作测试
#include
int main()
{
int a[5] = {1,2,3,4,5};
/* 你能答对最后一条语句的输出吗?*/
int *ptr1 = (int *)(&a+1);
int *ptr2 = (int *)((int)a+1);
printf("&a = %d\n",(&a));
printf("(&a+1) = %d\n",(&a+1));
printf("a = %d\n",a);
printf("(a+1) = %d\n",(a+1));
printf("(int)a+1 = %d\n",(int)a+1);
printf("ptr1 = %d,*ptr2 = %d",ptr1[-1],*ptr2); // 输出是多少?
return 0;
}
输出:
printf("(&a+1) = %d\n",(&a+1));//加1是加了整个数组的大小printf("(int)a+1 = %d\n",(int)a+1);//这里加1是当成整数加1
原文:http://blog.csdn.net/human_evolution/article/details/41447327