-6
我最近一直在研究中的指針C,和我不能似乎完全理解此代碼:差異,* PTR和&PTR
int *ptr= (*int) 99999;
*ptr = 10;
printf("%d\n,*ptr); //Outputs: 10
printf("%p\n",&ptr); //Outputs: 0029FF14
printf("%p\n",ptr); //Outputs: 0001869F
問題?
- 是「& ptr = 0029FF14」存儲「* ptr = 10」的存儲位置嗎?
- 「ptr = 0001869F」是否存儲「& ptr = 0029FF14」的存儲位置?如果不是那麼ptr是什麼?
謝謝!
我相信這個問題不同於「C指針語法」後,因爲它不區分ptr,* ptr和& ptr,這意味着帖子並沒有解釋爲什麼「ptr」包含不同的值,具體取決於它隨附的操作員。 [EDITED]
你爲什麼認爲選擇一個隨機存儲位置可以工作? aka這行''ptr = 10;' –
該代碼不會提供那些輸出,實際上不會編譯。 – OrangeDog
@EdHeal這行不是問題。 'int * ptr =(* int)99999;'is。 – glglgl