目录
1.题目
#include <stdio.h>
int main()
{
int arr[] = {1,2,3,4,5};
short *p = (short*)arr;
int i = 0;
for(i=0; i<4; i++)
{
*(p+i) = 0;
}
for(i=0; i<5; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
2.思路
int arr[] = {1,2,3,4,5};
short *p = (short*)arr;
arr是首元素的地址,首元素是一个整型,用短整型的指针变量存起来(短整型
的访问权限一次只有两个字节)
int i = 0;
for(i=0; i<4; i++)
{
*(p+i) = 0;
}
所以在操作指针的时候一次只能访问两个字节,每执行一次循环只会改变两个变量,
在执行完循环的时候只会讲两个数改变位0;(因为一个数所占的内四个字节的内存空间)</