gpt4 book ai didi

c - 为什么指针 + 1 实际上加 4

转载 作者:太空狗 更新时间:2023-10-29 16:27:16 24 4
gpt4 key购买 nike

#include<stdio.h>
int main(void){
int *ptr,a,b;
a = ptr;
b = ptr + 1;
printf("the vale of a,b is %x and %x respectively",a,b);

int c,d;
c = 0xff;
d = c + 1;
printf("the value of c d are %x and %x respectively",c,d);
return 0;
}

输出值是

the vale of a,b is 57550c90 and 57550c94 respectively
the value of c d are ff and 100 respectively%

事实证明 ptr + 1 实际上,为什么它会这样?

最佳答案

因为指针被设计成与数组兼容:

*(pointer + offset)

相当于

pointer[offset]

因此,指针运算不适用于字节,而是根据 sizeof(pointer base type) - 字节大小的 block 。

关于c - 为什么指针 + 1 实际上加 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11598361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com