C

指针+1会发生什么?

2019-06-11  本文已影响0人  SnC_

指针本身的大小,与计算机架构有关,如今一般为8字节。
指针的内容,为其指向data的地址。

char *a = "qw";
printf("%p %p",a,a+1);

结果为0x1023d0fad 0x1023d0fae,两者地址相差1byte。char类型的大小为1byte。

void指针与char指针相同,指针加1,地址相差1byte

int a = 1;
int *b = &a;
printf("%p %p\n",b,b+1);

结果为 0x7ffeee050ae8 0x7ffeee050aec,两者地址相差4byte。int类型的大小为4byte。

可知,指针+1,结果为 指针内容+sizeof(指针类型)*1

Remark
此性质使得指针可以完成数组取数据的操作。
数组作为函数参数时,可以指针传递。

上一篇 下一篇

猜你喜欢

热点阅读