4-2 char *a 与 char a

两种方式: (1) char *p = "abcdefg"; (2) char a[] = "abcdefg";

a[3] p[3] 都可以得到正确的字符 'd' ,但是两者的途径并不一样。

对于(1),当使用p[3]时,首先获得p的地址,假设为A1,取地址为A1的内容A2,然后在加上偏移量 3,最后再取位于[A2+3]地址的数据,也就是'd'。

对于(2),当使用a[3]时,首先获得a的地址,假设为A1,直接加上偏移量3,取位于[A1+3]地址的数据,也就是'd'。

Last updated

Was this helpful?