今天我也冒充一下标題黨。呵呵。
用g++編譯代碼時,struct中也有this指針。
我的g++版本:g++ (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4
以下代碼隻可用g++編譯,不可以用gcc編譯。
<code>#include<stdio.h></code>
<code>struct</code> <code>point{</code>
<code> </code><code>int</code> <code>x;</code>
<code> </code><code>int</code> <code>y;</code>
<code> </code><code>point(</code><code>int</code> <code>_x = 0, </code><code>int</code> <code>_y = 0) : x(_x), y(_y){</code>
<code> </code><code>printf</code><code>(</code><code>"(this, x, y) = (%p, %d, %d)\n"</code><code>, </code><code>this</code><code>, x, y); </code>
<code> </code><code>}</code>
<code>};</code>
<code>int</code> <code>main(){</code>
<code> </code><code>struct</code> <code>point po1(5,6);</code>
<code> </code><code>printf</code><code>(</code><code>"(&po1, x, y) = (%p, %d, %d)\n"</code><code>, &po1, po1.x, po1.y); </code>
<code>}</code>
測試結果:
(this, x, y) = (0x7fff179d2a60, 5, 6)
(&po1, x, y) = (0x7fff179d2a60, 5, 6)
本文轉自FrankNie0101 51CTO部落格,原文連結:http://blog.51cto.com/frankniefaquan/1935141,如需轉載請自行聯系原作者