与前缀运算符“ ++”一起使用的C和C ++指针

时间:2018-08-14 09:57:29

标签: c pointers

我试图理解C语言中的指针,并尝试给出一个荒谬结果的代码示例。

以下是代码示例:

void main()
{
    int *a;
    int arr[5] = {1,3,4,5,2};
    printf("%d\n", *(arr+1));
    a = arr;
    printf("Address: %p || Value: %d\n", ++a, *a);
}

好的,所以我希望它输出数组第二个索引的addressvalue,但是不幸的是,输出value不等于3(第二个索引值数组),而不是正确显示的地址。

这里的问题是前缀++a表达式不会更新指针变量a,而稍后在printf函数a中,dereferenced的更新值是未使用,因此输出显示数组的第一个索引值。

请帮助我。

0 个答案:

没有答案