Pointers 数组的基本指针算法

Pointers 数组的基本指针算法,pointers,Pointers,执行后数组和p的值是多少 int array[] = {1,2,3}, *p = array; a. *p++; b. (*p)++; c. *p++; (*p)++ 我知道答案是 a) array = {1,2,3} and *p = 2 b) array = {2,2,3} and *p = 2 c) array = {1,3,3} and *p = 3 但我不明白怎么做。解释一下就好了 p最初指向数组的第一个元素,因此 a。移动指针指向下一个元素,即2 b。取消对p的引用,p为1

执行后数组和p的值是多少

int array[] = {1,2,3}, *p = array;

a. *p++;
b. (*p)++;
c. *p++; (*p)++
我知道答案是

a) array = {1,2,3} and *p = 2 
b) array = {2,2,3} and *p = 2
c) array = {1,3,3} and *p = 3

但我不明白怎么做。解释一下就好了

p最初指向数组的第一个元素,因此

  • a。移动指针指向下一个元素,即2
  • b。取消对p的引用,p为1,然后将其增加1,即变为2
  • c。第一部分与a相同。指针指向第二个元素,然后取消引用,得到2,再增加1,得到3
@mclaassen:我不认为这是目的。该问题特别询问
p
的值。我认为这是一个错误的编辑。。。我想他想要的是
p=array+1
和类似的结果。它与结果相匹配。我想他显然对p所指的值感兴趣,而不是内存地址本身。。。不太确定,因为第二个数组的第三个元素切换到
2
并返回。虽然我觉得那是个打字错误。我开始认为你是对的。不管你怎样删掉它,显示的
b
的答案都是错误的。问题上写着“我知道答案是…”,所以如果你更新它,使答案真正符合显示的内容,那么问题就更有意义了。