有程序段:int *q,b[2]={2,3}; q=b; q++; *q++; 执行该程序段后,b[1]的值是多少?

求解析一下!谢谢!

是3
解题过程:
q=b;// 指针q指向的数组b的首地址b[0]
q++;// 执行后,q指向了数组b的下一个元素b[1]
*q++;// 可以理解为 *(q++);就是对表达式q++做解引用运算。q++返回的是q加之前的数值,所以这里的q++返回的是指向b[1]的指针。然后对其进行解引用,就得到数组b的第二个元素值:3。最后再使指针q所指向的地址向后移动一位,这里已超出了数组的地址范围。
温馨提示:答案为网友推荐,仅供参考