指针地址的问题,数值的转换问题

#include
void main(){
    int a[10]={1,2,3,4,5,6,7,8,9,0},*p;
    p=a;
    printf("%x\n",p);
    printf("%x\n",p+9);
}

该程序中有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果是?
A.203 B.204 C.1a4 D.1a6
正确选项是哪一个?

int 型 4个字节, p 如果输出十六进制为 194 , 那 p + 9 , 相当于 194 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 , 按照十六进制,每 16进1 .

  194 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 
= 198 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 
= 19c + 4 + 4 + 4 + 4 + 4 + 4 + 4 
= 1a0 + 4 + 4 + 4 + 4 + 4 + 4 
= 1a4 + 4 + 4 + 4 + 4 + 4 
= 1a8 + 4 + 4 + 4 + 4 
= 1ac + 4 + 4 + 4 
= 1b0 + 4 + 4
= 1b4 + 4
= 1b8

结果应该为 1b8

img