将指针n赋给指针p,n++后,p有什么变化?

  1. 已知代码如下,则程序的输出结果是( A )。 void func(int *n) { static int *p = n; cout<<*n++<<", "<<*p<<endl; } void main () { int a[2] = {5,3}; func(a); func(a+1); } A. 5, 5 B. 5, 5 3, 5 3, 3 C. 5, 6 D. 5, 6 3, 4 3, 6

p仍然指向原来的位置,指针本身不发生改变,只是指针指向的数据发生了变化。

注:func(a+1)时*n++越界了,结果未知;而*p没有越界,输出3。

答案是5,5,3,5吧。
p作为局部静态指针变量只被"static int *p = n "赋值一次
n和p只是一开始赋值有关系啊,n++不影响。把n和p理解为特殊的普通变量就好。
(初学,可能错,作参考)