下列4个选项中,哪个结果为6? int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p = a;
问题描述:
下列4个选项中,哪个结果为6? int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p = a;
int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p = a; (A) *p + 6; (B) *(p+6); (C) *p += 5; (D) p+5; 答: A B 求解释
答
这个是指针指向的问题.*p=a,是定义个p指针,指向了数组a.那么p指向的也可以看成是指向a[0],对于答案B很好理解了,p+6指向的实际也就是a[6],再用*取值,答案就是6.对于A,则很简单啊,*p+6也就是先取p的值,再对这个值+6.p指向a[0],a[0]值是0,再0+6结果当然也是6了