指针类型对指针的影响
普通类型数字之间可以相互转换,但指针不能随意转换。
1、影响指针加一
即p+1可解释为p+sizeof(datatpe)
如:
int ar[10]={};
intp=ar;//把ar首元素的地址给指针p
则p+1=a[1];
p+1就加了四个字节,因为int具有四字节,同理char一字节,double8字节…
2、影响指针对内存的解析能力
int main()
{
int a = 0x12345678;
int* ip = &a;
short* sp = (short*)&a;
char* cp = (char*)&a;
printf("%0x,%0x,%0x",*ip,*sp,*cp);//指针对内存的解析能力不一样
}
运行结果如下:
12345678
5678
78
3、用此可以证明大小端存放
#include <stdio.h>
int main()
{
int a = 0x00000001;
char* p = (char*)&a;
if (*p == 1)
{
printf("小端存放");
}
else
{
printf("大端存放");
}
return 0;
}
运行结果:
小端存放