当我在网站上处理指针时,我会坚持一个点。
当我编写给定的示例时,我可以在指针上分配数组地址以增加指针示例,如 ptr = arr;
并且它工作正常,但是当我为递减示例 它不起作用 只有当我像这样写 ptr = &arr[2]
时它才起作用。为什么我必须为递减示例写 & 符号?这两者有什么区别?
int main()
{
int arr[3]={10,20,30};
int *ptr,i;
ptr=arr;
for(i=0;i<3;i++)
{
printf("adress of variable arr[%d] %x\n",i+1,ptr);
printf("value of arr[%d] = %d\n",i+1,*ptr);
ptr++;
}
return 0;
}
最佳答案
不用写,直接用指针即可:
ptr = var + 2 ;
for(i=0;i<3;i++)
{
printf("%d" , *ptr ) ;
ptr-- ;
请注意,最后一个元素位于 +2
而不是 +3。
关于c++ - 指针递增递减语法差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27626927/