c语言中指针指向的地址的值+1 会发生什么? |
您所在的位置:网站首页 › 数组元素地址相减 › c语言中指针指向的地址的值+1 会发生什么? |
今天吃饭的路上和同学说起,他说发现了 c 语言中能够通过指针p指向一个int 数组array,然后把指针的值保存为 int 型 变量 address,再对 int 型的指针地址address+4,再把存着数组下一个地址的 int 变量转为 int 型指针, 这样还能够访问数组的下一个变量。 int array[5]={1,2,3,4,5}; int *p=array; unsigned long address = (unsigned long)p; address +=sizeof(int); printf("%p:",p); printf("%d\n",*p); printf("%p:",(int*)address); printf("%d\n",*(int*)address);output: 0x7ffeefbff4a0:1 0x7ffeefbff4a4:2 Program ended with exit code: 0然后我就想着,一般的情况下对指针+1,会自动指向下一个存有变量的地址,现在既然已经知道指针指向的地址了,如果我对指针的值+1,再把它转为指针看一下会发生什么? int array[5]={1,2,3,4,5}; int *p=array; unsigned long address = (unsigned long)p; for(int i=0;i |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |