好時,我居然不知道我應該怎麼形容這樣的:奇怪的行爲增加值指針
uintptr_t * ptr = (uintptr_t *) 0x21CC9004;
std::cout << ptr + 0x10 << std::endl;
std::cout << std::hex << 0x21CC9004 + 0x10 << std::endl;
第一行產生21CC9044和第二線產生21CC9014。
那是怎麼回事?有人可以解釋這一點,我可以如何添加0x10到我的指針從第二行得到結果?
指針運算是根據「sizeof(T)」單位(其中「T」是引用類型)來定義的,而不是以字節爲單位。 – 2014-01-26 21:17:41
請問你能更具體些嗎? – user3183815
另外,除非'(uintptr_t *)0x21CC9004'是一個有效的指針,否則'ptr + 0x10'是未定義的行爲。 – 2014-01-26 21:21:19