*pa的值为什么从2变成了0?第2个*pa不是array的第一个值吗为什么是0而array[0]为3?
来源:7-5 左值和右值【只需记住这两点】

平_常_心
2025-02-17
int array[4] = {0};
int *pa = array;
*pa = 2;
PRINT_INT(*pa);
PRINT_INT(array[0]);
PRINT_INT(array[1]);
PRINT_INT(array[2]);
PRINT_INT(array[3]);
*pa++ = 3;//这里有个技巧就是执行顺序的问题,可以按Ctrl+W
PRINT_INT(*pa);
PRINT_INT(array[0]);
PRINT_INT(array[1]);
PRINT_INT(array[2]);
PRINT_INT(array[3]);
PRINT_INT(*pa++);
PRINT_INT(array[0]);
PRINT_INT(array[1]);
PRINT_INT(array[2]);
PRINT_INT(array[3]);
```
写回答
2回答
-
qq_申_0
2025-02-17
*pa++, ++优先级高于*, 故, 先使用后递增指针, 打印的第二个*pa相当于array[1]
112025-02-17 -
bennyhuo
2025-02-17
*pa++ = 3; // 这一句,相当于 *pa = 3, pa += 1;
PRINT_INT(*pa); // 这时 pa 已经指向 array[1] 了012025-04-19
相似问题
老师,这个左右值怎么理解?
回答 1
老师,关于问答区一个问题
回答 1