visualc++6.0指针问题提问

已知指针p为int型指针,且其指针值为5000,则p+3的指针值为 ;(注:sizeof(int)=4)

p为int型指针,其指针值为5000,则p+3的指针值为5000 + 3 * sizeof(int) = 5000 + 3 * 4 = 5012

5000 + 3 * sizeof(int) = 5000 + 3 * 4 = 5012

指针的大小与编译器有关,但是指针偏移只与 类型有关, int 为 4, 则 + 1 的偏移量为 4, p+3 则为 12, 即 5000 + 12 = 5012

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    执行p+3后,它指向的地址是5000+3*4=5012。

    代码示例:

    int *p = (int*)5000; //将指针p赋值为5000
    p += 3; //将指针p移动三个int类型的偏移量
    std::cout << "p指向的地址是:" << p << std::endl; //输出p指向的地址
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^