1
*(*(p+a)+b)
如果將*尺寸添加到地址(p),那麼爲什麼將b *尺寸添加到*(p + a)? *(p + a)似乎是該位置處的值,並將b *大小添加到該值將更改其值,而不是地址。但是,根據我讀到的內容,這意味着要添加到地址中。指針算術的澄清
*(*(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
這是有道理的。我沒有想到指針指針的多維數組。然後,解引用會產生一個指針,編譯器或其他東西允許值成爲地址。 – user490735 2011-02-23 11:16:55