对指针算术的澄清

*(*(p+a)+b)
如果将*大小添加到地址(p),那么为什么b *大小被添加到*(p + a)? *(p + a)似乎是该位置的值,并且向其添加b *大小将改变其值,而不是地址。但是,根据我读到的内容,这意味着要添加到地址中。     
已邀请:
给出你的表达式,假设你在谈论C,p必须是一个指向指针的指针。会发生什么:
char ** p;
int a = 2;
int b = 4;

(p+a) // adds 2 * sizeof(char *)
*(p+a) // evaluates to a char *
char * c = *(p+a)
(c+b) // adds 4 * sizeof(char)
*(c+b) // evaluates to a char
    

要回复问题请先登录注册