指针加减操作的单位

原创 2012年03月26日 17:07:56

&+数组名+整形,表示数组首地址+数组的大小偏移量

例如:

int a[5]={1,2,3,4,5};

int *ptr=(int *)(&a+1);

*(ptr -1 ) 则等于a[4]

原因是指针大加减操作单位根据指针的类型的来定的

在这里,[&+数组名]指针的类型是数组指针,加减操作的一个单位一个该数组的大小(sizeof(数组长度*数组元素类型))

理所当然,例如int* p,p的加减操作的单位就是sizeof(int)

 

关于指针的加减操作

原题:main() { int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); printf("%d,%d",*(a+1),*(ptr-...
  • u010193457
  • u010193457
  • 2015年08月19日 16:24
  • 3005

指针的加减操作和比较

指针加减的例题代码: #include int main(void) { int a[5] = {1,2,3,4,5} ; int *ptr = (int *)(&a+1) ; ...
  • perfectguyipeng
  • perfectguyipeng
  • 2017年04月16日 22:59
  • 469

再谈指针运算和地址加减运算的区别

先上代码,有下面一段代码: //下面是读取线状目标的记录内容的代码: procedure OnReadLineShp(ShpFileName:String); var   FileHandle...
  • c_huabo
  • c_huabo
  • 2012年08月31日 09:59
  • 1898

C语言中的指针加减偏移量

 首先看一段程序:#include int main(){ int a[5] = {1, 2, 3, 4, 5}; int* p = (int*)(&a + 1); printf("%d, %d /n...
  • dobest9014
  • dobest9014
  • 2010年03月11日 15:29
  • 20439

C++ 指针加减运算

注意: 如果两个指针不是指向同一个数组,对两个指针进行加减或者进行比较是没有任何意义的。 并且两个指针指向同一个数组,两个指针进行加减运算实际上是对数组中的元素进行加减或者比较运算的。 1) 指针变量...
  • helainthus
  • helainthus
  • 2016年05月13日 11:41
  • 3210

void*指针

指针有两个属性:指向变量/对象的地址和长度 但是指针只存储地址,长度则取决于指针的类型 编译器根据指针的类型从指针指向的地址向后寻址 指针类型不同则寻址范围也不同,比如: int*从指定地址向...
  • newfelen
  • newfelen
  • 2014年04月17日 11:11
  • 701

指针加减操作

int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); cout
  • zhuimengzh
  • zhuimengzh
  • 2011年09月10日 10:57
  • 1148

指针的加减操作及对指针和数组类型的理解

先来看看一道题,分析指针的加减操作: 例题1:写出下面程序的运行结果 int a[3]; a[0] = 0,a[1] = 1,a[2] = 2; int *p,*q; p=a; q = &a[2]...
  • dby3579
  • dby3579
  • 2016年07月23日 16:54
  • 261

C语言指针2-指针的加减

    指针是一个变量,存储的是一个32位的数值(地址),也可参与计算,比如指针p++, p--, p+= sizeof(int)等,但只能用于连续存储空间。    p++,p--:指针p移动一个单位...
  • hbuxiaoshe
  • hbuxiaoshe
  • 2010年08月03日 16:20
  • 1667

指针变量能否做加、减法 、比较大小?答案,是可以的。但又与普通变量做加减法运算有区别:

指针变量是有加减运算的,但是要注意以下几点:
  • chendehao001
  • chendehao001
  • 2016年04月13日 18:31
  • 3084
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:指针加减操作的单位
举报原因:
原因补充:

(最多只允许输入30个字)