談論指標(一)

2021-07-23 12:16:04 字數 901 閱讀 8383

在電腦科學中,

指標(pointer)是程式語言中的乙個物件,利用位址,它的值直接指向(points to)存在電腦儲存器中另乙個地方的值。由於通過位址能找到所需的變數單元,可以說,位址指向該變數單元。因此,將位址形象化的稱為「指標」。意思是通過它能找到以它為位址的

記憶體單元。在

高階語言

中,指標有效地取代了在低階語言,如

組合語言

與機器碼,直接使用通用

暫存器的地方,但它可能只適用於合法位址之中。指標參考了

儲存器中某個位址,通過被稱為反參考指標的動作,可以取出在那個位址中儲存的值。作個比喻,假設將電腦儲存器當成一本書,一張內容記錄了某個頁碼加上行號的便利貼,可以被當成是乙個指向特定頁面的指標;根據便利貼上面的頁碼與行號,翻到那個頁面,把那個頁面的那一行文字讀出來,就相當於是對這個指標進行反參考的動作。

(*p)操作是一種運算,返回p值作為位址那個空間的取值

(&p)操作也是一種運算,返回宣告p時p的位址

來理解一下第一種的應用(*p)

假設p分配空間時被分配給了3001h和3002h兩個位置

int *p;

p=2003h;

*p=3000h;

這個問題可以這麼看,字母最近原則,先算(*p)也就是*(2003h),然後再算*(*(2003h))然後就得出乙個結論*(*(2003h))=*(3000h)等於同乙個值

我是這麼理解的,本來有這麼乙個p然後將乙個位址值賦給它,*p去到這個位址中找,又找到了乙個位址3000h,**p就是到這個位址中再去找值,恩就這樣

同樣的就近法可以得到這麼乙個等式&(3001h)此時應該報錯3001h這個位址怎麼會有位址呢?

*(3001h)=2003h

&(3000h)=2003h &(3000h)是求3000h這個變數的記憶體位址,依然是p的值

繼續談論XSS

這篇文章基於上篇談論xss 想說下自己工作過程中遇到的xss的問題。說說jsonp 中也有說過,jsonp其實是很容易出現安全問題的。由於jsonp的callback是由引數指定的,而必須在response中返回,所以這裡的jsonp很容易出現的就是xss漏洞了。服務端要切記著對這個callback...

《當我們談論愛情時,我們談論機器》感悟一二

科技拉近了彼此的距離,可以也會帶來疏遠,漫步街頭,你就可以發現,大多數人在聚餐時,吃飯時,睡覺時都在看著手機,他們幾乎忘記了身邊人的存在,這時候,你還會覺得科技拉近了彼此的距離嗎?再說,每個人都是孤獨的,生來便是如此,有誰比你更理解你自己,更明白你需要什麼呢?只有自己罷了。也許是現在人類面臨的困境更...

雜談 論時間成本

一直在考慮買乙個私人雲,由於囊中羞澀,下不了決心。今日在備份硬碟的時候,突然想到這個問題,就是一次性拷貝過去,還是先在目標地造好資料夾,逐條拷貝過去。想了一下。應該是前者比較划算。前者屬於先無腦粘,完成以後,可以自由地建立資料夾。而檔案在同乙個分割槽下分資料夾,基本不耗什麼時間。況且,原先的檔案也是...