1.指针变量的类型,决定了只指向空间的大小。
2.同时决定了增量
#include<stdio.h>
/*
指针变量的类型,决定了只指向空间的大小。
同时决定了增量
*/
int main()
{
int a =0x123456;//16进制的数
int *p=&a;
char *c=&a;
printf("%x\n",*p);
printf("%x\n",*c);
printf("char类型a地址%p\n",p);
printf("char类型a地址%p\n",c);
printf("int类型a+1地址%p\n",++p);
printf("char类型a+1地址%p\n",++c);
/*
可知整型指针变量+1,地址加了4
而字符型指针+1,地址加1.
是因为:
一个整型数是4个字节,一个字节Byte==8bit(8位),有32位,
一个字符数是1个字节,8位,
*/
return 0;
}
int 类型可以访问内存空间32位
char 类型只能访问内存空间8位
(*p+1)==地址+1,表示的不是地址加1,是地址向右偏移一位,但是偏移的单位由着指针变量类型决定
int 类型的指针,向右偏移一个地址,相当地址值+4,
char 类型的指针,向右偏移一个地址,相当于地址值+1。
地址值+1为1 byte,一个整型数是4个字节(byte),一个字符数是1个字节(byte)
输出结果: