现在的位置: 首页 > 综合 > 正文

指针p+1 和&p[1]的差异

2013年05月21日 ⁄ 综合 ⁄ 共 476字 ⁄ 字号 评论关闭

 p+1就是指针的值加1

&p[1]也是对指针的值进行加法运算,具体加多少,要看p的类型, 如果p是int*,那么地址就是加4

//实验代码

int a[33];
 int *pa=a;

 unsigned char b[33];
 unsigned char *pb=b;

 unsigned short int c[33];
 unsigned short int *pc=c;

 printf("sizeof(int):%x\r\n",sizeof(int));
 printf("sizeof(char):%x\r\n",sizeof(char));
 printf("sizeof(unsigned short int):%x\r\n",sizeof(unsigned short int));
 
 printf("pa:%x,pa+1:%x\r\n",(int)&a[0],(int)&a[1]);
 printf("pa:%x,pa+1:%x\r\n",(int)pa,(int)pa+1);
 printf("pa:%x,pa+1:%x\r\n",(int)&pa[0],(int)&pa[1]);

抱歉!评论已关闭.