天天看點

震驚!struct中竟然也有this指針!

今天我也冒充一下标題黨。呵呵。

用g++編譯代碼時,struct中也有this指針。

我的g++版本:g++ (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4

以下代碼隻可用g++編譯,不可以用gcc編譯。

<code>#include&lt;stdio.h&gt;</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>"(&amp;po1, x, y) = (%p, %d, %d)\n"</code><code>, &amp;po1, po1.x, po1.y); </code>

<code>}</code>

測試結果:

(this, x, y) = (0x7fff179d2a60, 5, 6)

(&amp;po1, x, y) = (0x7fff179d2a60, 5, 6)

      本文轉自FrankNie0101 51CTO部落格,原文連結:http://blog.51cto.com/frankniefaquan/1935141,如需轉載請自行聯系原作者

繼續閱讀