前兩天看到乙個講函式呼叫的帖子:突然想到以前自己犯過的乙個錯誤,雖然現在不再犯了,但總覺得自己仍有理解不到位的地方,如下函式:
void fun(int *ps)
void main()
void main()
{int *p;
fun(&p);
*p = 1;
函式修改如上後,p的棧位置與棧內資料同上,ps定義時會分配4個棧,存在ps=&p,即表示ps的棧資料(*ps)與&p的站內資料(*(&p),即p)相同,此時呼叫malloc為*ps分配堆並修改其棧內資料,即等同於修改p的棧內資料,於是p的棧內資料成功變為malloc出來的堆位址。
fun函式內:
fun函式結束,走到*p=1處:
《c與指標》都看到山溝裡了,想想第一次看這本書還是7年前,可惜忘了很多,現在看來到了翻出來回味的時候了。
iOS學習小計畫
一 前期已經基本了解了一些常識及相關的名詞 三 從瀏覽的情況來看主要是,1 相關工具及開發環境的搭建 目前已經有蘋果虛擬機器 xcode ios4.3 sdk,已經linux下的objc編譯環境 主要用於學習下objc的語言 2 相關開發工具的使用,xcode的使用。3 蘋果的介面,framwork...
CSS技術學習小計
css cascading style sheet 層疊樣式表單 是用於 增強 控制網頁樣式並允許樣式資訊於網頁內容分離的一種標記語言。css定義的規則具體如下 選擇器在上述的樣式規則種,選擇器用於指定css樣式作用的html物件,花括號內的屬性是對該物件設定的具體樣式。其中,屬性和值以 鍵值對 的...
gnuplot 學習小計5 標度
gnuplot中的標度就是x軸和y軸上面所顯示的刻度和刻度上的文字。使用命令 set xtics set x2tics set ytics set y2tics 來分別將下方的x軸,上方的x軸,左邊的y軸,右邊的y軸設定為預設的標度。特別的功能選項可以在上述命令的後面加上引數來實現。用 unset ...