永发信息网

什么是指针的加法

答案:3  悬赏:30  手机版
解决时间 2021-12-26 08:45
  • 提问者网友:练爱
  • 2021-12-25 08:55
请问指针加法是什么意思?怎么加,请举几个例子最好?
最佳答案
  • 五星知识达人网友:春色三分
  • 2022-01-22 05:02
指针加法就是对当前指针前移或者后移若干个类型长度,例如
int a[10];
int* p = a+5;就是以a为基础前移5个元素(int)结果就是p指向a[5]
p-=2;就是后移两个指向a[3];
注意:移动的单位是指针的类型大小
int* q =a+1;
if(p-q>0)cout<<"p is after q"<<endl;
指针也可以做减法表示位置关系
但没有p+q的用法
全部回答
  • 1楼网友:罪歌
  • 2022-01-22 05:48
指针加法是根据指针类型进行移动的,void 型的指针是不能做加法的。 int* p1;       //如果 p1 为 0x00000001 int* p3 = p1 + 4;  //p3 = 0x00000001 + 4 * sizeof(int);    ==>  p3 = 0x00000001 + 0x10;  //p3 = 0x00000011; char* p1;       //如果 ptr1 为 0x00000001 char* p3 = p1 + 4;  //ptr3 = 0x00000001 + 4 * sizeof(char);    ==>  p3 = 0x00000001 + 0x4;  //p3 = 0x00000005
  • 2楼网友:杯酒困英雄
  • 2022-01-22 05:12
指针加法是根据指针类型进行移动的,void 型的指针是不能做加法的。 int* ptr1; //如果 ptr1 为 0x00000001 int* ptr3 = ptr1 + 4; //ptr3 = 0x00000001 + 4 * sizeof(int); ==> ptr3 = 0x00000001 + 0x10; //ptr3 = 0x00000011; char* ptr1; //如果 ptr1 为 0x00000001 char* ptr3 = ptr1 + 4; //ptr3 = 0x00000001 + 4 * sizeof(char); ==> ptr3 = 0x00000001 + 0x4; //ptr3 = 0x00000005
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯