已知指针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
不知道你这个问题是否已经解决, 如果还没有解决的话:执行p+3后,它指向的地址是5000+3*4=5012。
代码示例:
int *p = (int*)5000; //将指针p赋值为5000
p += 3; //将指针p移动三个int类型的偏移量
std::cout << "p指向的地址是:" << p << std::endl; //输出p指向的地址