-2
運行此代碼後會發生什麼?C++指針字符
char* c= "abc";
void* p= &c;
printf("%s %s", *(char**) p, *(char*) p);
所以c指向字符串和p太。但我沒有得到所有*真正做到的。 有人可以解釋我嗎?
運行此代碼後會發生什麼?C++指針字符
char* c= "abc";
void* p= &c;
printf("%s %s", *(char**) p, *(char*) p);
所以c指向字符串和p太。但我沒有得到所有*真正做到的。 有人可以解釋我嗎?
printf行中的第二個參數會導致該問題,因爲它會將p的內容解釋爲字符串,而不是指向字符串的指針。 printf行可能是:
printf("%s %c", *(char**)p, *c);
編譯器錯誤,這就是發生了什麼。 –
@DanielKamilKozar [不是真的](http://ideone.com/Hmt3Ev) –
@πάνταῥεῖ - 好的,那麼警告。 :) –