c++ - 指针递增递减语法差异

标签 c++ c pointers

当我在网站上处理指针时,我会坚持一个点。

当我编写给定的示例时,我可以在指针上分配数组地址以增加指针示例,如 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/

相关文章:

objective-c - c中的非对称多维数组

C - 链表的 addLast 函数的奇怪行为

c - C 中具有动态内存分配的指针 vector

c# - 从两台机器调用 C++ dll

c++ - gcc 4.8.1 默认启用 sse 吗?

c - 如果数组总是按引用传递,那么如何将数组传递给像 printf 这样严格按值调用的函数?

c - 如何同时应用多个过滤器?

c++ - 使用标准布局类型与其他语言进行通信

c++ - 删除列表控件 (MFC) 中的重复项

c - 指针和链表节点创建错误