C/C++語言的本質(Directly)
來源:程序員人生 發布時間:2014-10-12 21:54:22 閱讀次數:3845次
記得大三實習的時候在一位喜歡做破解的哥們的影響下了解反匯編調試這么一回事兒,于是實踐后
恍然悟到:(1)學匯編不為寫匯編,而為透析c/c++諸多細節的本質(2)大神的境界應該是每寫一句
c/c++語言,其相應匯編代碼便了然于心。
題外話:本文總是把c語言和c++語言寫在一起,是因為筆者喜歡,筆者認為如果說匯編語言是機器
語言的第一重映射,那么c語言就是匯編語言的第一重映射、c++是c語言的第1.5重映射。因此要精通
c語言,必然要熟悉匯編,要精通c++必然要精通c語言。
列舉下我通過匯編透析到的的語言本質吧:
(1)The different of pointer and reference
int i=0;
int& j=i;
int* k=&i;// int* k=&j;
常人的解釋是這樣的:reference: alias(the same entity) ; pointer: address(addressof entity)
In fact, the implement of pointer and reference by assembly is the same. Such as following:
int i = 5;
int* pi = &i;
int ri = i;
The corresponding assembly code:
mov dword ptr [i], 5
lea eax, [i]
mov dword ptr[pi], eax;
lea eax, dword ptr[i]
mov dword ptr[ri], eax
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈